Docker環(huán)境搭建

1三娩、關(guān)于Docker

1.1、什么是Docker

Docker概念就是大概了解一下就可以,還是引用一下百度百科吧:

Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中极阅,然后發(fā)布到任何流行的Linux機器上胃碾,也可以實現(xiàn)虛擬化涨享,容器是完全使用沙箱機制,相互之間不會有任何接口仆百。

一個完整的Docker有以下幾個部分組成:

dockerClient客戶端

Docker Daemon守護進程

Docker Image鏡像

DockerContainer容器 [2]

1.2厕隧、為什么要使用Docker

作為一種新興的虛擬化方式,Docker跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢俄周。

更高效的利用系統(tǒng)資源

由于容器不需要進行硬件虛擬及運行完整操作系統(tǒng)等額外開銷吁讨,Docker對系統(tǒng)資源的利用率更高。無論是應(yīng)用執(zhí)行速度峦朗、內(nèi)存損耗或者文件存儲速度建丧,都要比傳統(tǒng)的虛擬機技術(shù)更高效。因此波势,相比虛擬機技術(shù)翎朱,一個相同配置的主機,往往可以運行更多數(shù)量的應(yīng)用尺铣。

更快速的啟動時間

傳統(tǒng)的虛擬機技術(shù)啟動應(yīng)用服務(wù)往往需要數(shù)分鐘拴曲,而Docker容器應(yīng)用,由于直接運行與宿主內(nèi)核凛忿,無需啟動完整的操作系統(tǒng)澈灼,因此可以做到秒級、甚至毫秒級別的啟動時間。大大的節(jié)約了開發(fā)叁熔、測試委乌、部署的時間。

一致的運行環(huán)境

開發(fā)過程中一個常見的問題是環(huán)境一致性問題荣回。由于開發(fā)環(huán)境福澡、測試環(huán)境、生產(chǎn)環(huán)境不一致驹马,導(dǎo)致有些BUG并未在開發(fā)過程中被發(fā)現(xiàn)革砸。而Docker的鏡像提供了除了內(nèi)核外完整的運行時環(huán)境,確保了應(yīng)用運行環(huán)境得一致性糯累,從而不會再出現(xiàn)“這段代碼在我機器上沒問題”這類問題算利。

持續(xù)交付和部署

對開發(fā)和運維人員來說,最希望的就是一次性創(chuàng)建或配置泳姐,可以在任意地方正常運行效拭。

使用Docker可以通過定制應(yīng)用鏡像來實現(xiàn)持續(xù)集成、持續(xù)交付胖秒、部署缎患。開發(fā)人員可以通過DockerFile來進行鏡像構(gòu)建,并結(jié)合 持續(xù)集成系統(tǒng)進行集成測試阎肝,而運維人員則可以直接在生產(chǎn)環(huán)境中快速部署該鏡像挤渔,甚至結(jié)合持續(xù)部署系統(tǒng)進行自動部署。

而使用DockerFile使鏡像構(gòu)建透明化风题,不僅僅開發(fā)團隊可以理解應(yīng)用運行環(huán)境判导,也方便運維團隊理解應(yīng)用運行所需條件,幫助更好的生產(chǎn)環(huán)境中部署該鏡像沛硅。

更輕松的遷移

由于Docker確保了執(zhí)行環(huán)境得一致性眼刃,使得應(yīng)用的遷移更加容易。Docker可以在很多平臺上運行摇肌,無論是物理機擂红、虛擬機、公有云围小、私有云昵骤,甚至是筆記本,其運行結(jié)果是一致的吩抓。因此用戶可以很輕易的將在一個平臺上運行的應(yīng)用遷移到另一個平臺涉茧,而不用擔心運行環(huán)境得變化導(dǎo)致應(yīng)用無法正常運行的情況。

更輕松的維護和擴展

Docker使應(yīng)用的分層存儲以及鏡像的技術(shù)疹娶,使得應(yīng)用重復(fù)部分的復(fù)用更為容易伴栓,也使得應(yīng)用的維護更新更加簡單,基于基礎(chǔ)鏡像進一步擴展鏡像也變的非常簡單。此外钳垮,Docker團隊同各個開源項目團隊一起維護了一大批高質(zhì)量的官方鏡像惑淳,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進一步定制饺窿,大大的降低了應(yīng)用服務(wù)的鏡像制作成本歧焦。

image

摘自《Docker從入門到實踐》。

1.3肚医、Docker版本分類

Docker分為CE版本和EE版本绢馍,區(qū)別如下:

Docker社區(qū)版(CE):為了開發(fā)人員或小團隊創(chuàng)建基于容器的應(yīng)用,與團隊成員分享和自動化的開發(fā)管道。docker-ce提供了簡單的安裝和快速的安裝肠套,以便可以立即開始開發(fā)舰涌。docker-ce集成和優(yōu)化,基礎(chǔ)設(shè)施你稚。(免費)

Docker企業(yè)版(EE):專為企業(yè)的發(fā)展和IT團隊建立誰瓷耙。docker-ee為企業(yè)提供最安全的容器平臺,以應(yīng)用為中心的平臺刁赖。(付費)

我們使用CE版本即可搁痛,即Docker-CE。

Docker-CE有windows版本宇弛,我也安裝過鸡典,但是有太多莫名其妙的問題,確實無法使用涯肩,所以就嘗試在虛擬機的CentOS里使用Docker-CE轿钠,效果非常棒,這也就是我前面會花那么多篇幅來寫Windows下安裝CentOS的原因病苗。這樣初學(xué)者不用再翻各種資料來進行嘗試,確保一氣呵成症汹。哈哈硫朦!

2、安裝Docker-CE(請先按步驟體驗一下安裝過程背镇,文章末尾會追加自動化安裝腳本)

docker安裝的有些步驟我也不是很明白咬展,從網(wǎng)上查到相關(guān)知識,通過實戰(zhàn)安裝發(fā)現(xiàn)可行瞒斩,就OK了破婆。

2.1、Docker版本檢查

docker要求CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 胸囱,安裝之前首先要驗證你的CentOS 版本是否支持 Docker 祷舀。

通過uname -r 命令查看你當前的內(nèi)核版本(建議使用xshell連接虛擬機進行命令操作):

$ uname -r

image

CentOS內(nèi)核版本沒有問題

2.2、更新系統(tǒng)

使用root 權(quán)限登錄 CentOS。確保 yum 包更新到最新裳扯。

$ yum -y update

2.3抛丽、卸載舊版本(如果安裝過就版本的話)

$ yum remove docker docker-common docker-selinux docker-engine

如果安裝過舊版本,就會卸載當前版本饰豺;如果沒安裝過亿鲜,運行上面的命令也沒關(guān)系,只是提示未安裝

image

比較干凈冤吨,沒有需要刪除的歷史docker蒿柳。

2.4、安裝需要的軟件包

yum-util 提供yum-config-manager功能漩蟆,另外兩個是devicemapper驅(qū)動依賴的

$ yum install -y yum-utils device-mapper-persistent-data lvm2

2.5其馏、設(shè)置yum源,清華鏡像倉庫爆安,速度很快

yum -y install wget #如果沒有安裝wget則安裝叛复,如已安裝則會跳過

根據(jù)你的發(fā)行版下載repo文件:

$ wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

把軟件倉庫地址替換為 TUNA:

sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

2.6、安裝docker

$ yum makecache fast # 清緩存

$ yum install docker-ce # 安裝docker-ce

2.7扔仓、啟動并加入開機啟動

$ systemctl start docker

$ systemctl enable docker

2.8褐奥、驗證安裝是否成功

如果有client和service兩部分,則表示docker安裝啟動都成功了

$ docker version

image

3翘簇、安裝Docker Compose

以前使用 Docker 的時候撬码,需要定義 Dockerfile 文件,然后使用 docker build版保、docker run 等命令操作容器呜笑。然而微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)一般包含若干個微服務(wù),每個微服務(wù)一般都會部署多個實例彻犁,如果每個微服務(wù)都要手動啟停叫胁,那么效率之低,維護量之大可想而知汞幢。

使用 Docker Compose 可以輕松驼鹅、高效地管理容器,他是一個用于定義和運行多容器Docker的應(yīng)用程序工具森篷。

3.1输钩、運行命令下載 docker compose

從國內(nèi)鏡像 get.daocloud.io 快速下載:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

3.2、給執(zhí)行文件添加執(zhí)行權(quán)限

chmod +x /usr/local/bin/docker-compose

3.3仲智、輸入命令測試

docker-compose --version

返回:

docker-compose version 1.22.0, build f46880fe

docker compose 安裝成功买乃!

3.4、配置docker國內(nèi)鏡像

為了確保docker能快速加載應(yīng)用程序鏡像钓辆,配置鏡像列表剪验,指向國內(nèi)的鏡像地址肴焊。

修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 鍵值。

{

"registry-mirrors": ["https://registry.docker-cn.com"]

}

修改保存后重啟 Docker 以使配置生效碉咆。

systemctl restart docker

至此抖韩,docker環(huán)境安裝完畢!

4疫铜、自動化安裝的腳本(后續(xù)我的項目都會編制相應(yīng)的腳本茂浮,便于安裝和維護)

體驗過整個安裝過程后,是不是覺得有些麻煩壳咕?是的席揽,命令行模式一步步執(zhí)行確實很啰嗦,還不好記谓厘。所以幌羞,我為大家準備了全自動化的安裝腳本,并已經(jīng)上傳到了github竟稳,請到github拉取試用属桦!github地址為:https://github.com/tanbushi/install-docker

拉取文件后,可以將 install-docker.sh 上傳到虛擬機CentOS的任意目錄里他爸,或者將 install-docker.sh 拷入上一篇文章所建立和映射的共享文件夾下(文章里的示例路徑為:F:\dockers)聂宾,文章請參考:Docker搭建LNMP環(huán)境實戰(zhàn)(四):安裝VMware Tools共享文件夾;在虛擬機CentOS里的 /mnt/hgfs/dockers 里訪問到 install-docker.sh诊笤。

給腳本 install-docker.sh 增加可執(zhí)行權(quán)限

$ chmod +x install-docker.sh

執(zhí)行 install-docker.sh 腳本文件

$ ./install-docker.sh

即可自動完成 docker 及 docker-compose 的安裝系谐!Good Lucky!

5讨跟、自動化卸載docker的腳本

在github地址為:https://github.com/tanbushi/install-docker的項目里有個uninstall_docker.sh纪他,可以和install.sh進行類似處理

執(zhí)行 install-docker.sh 腳本文件

$ ./uninstall-docker.sh

即可自動完成 docker 的卸載!

docker鏡像操作

https://blog.csdn.net/wangmx1993328/article/details/81708850

docker容器操作

https://blog.csdn.net/wangmx1993328/article/details/81735070

docker實踐---安裝mysql

https://blog.csdn.net/wangmx1993328/article/details/81805371

使用dockerfile部署javaweb項目

http://www.reibang.com/p/ab0de243736a

docker compose部署mysql

https://blog.csdn.net/hjxzb/article/details/84927567

Docker 定制容器鏡像的2種方法

https://www.cnblogs.com/hanyifeng/p/6116067.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晾匠,一起剝皮案震驚了整個濱河市茶袒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌混聊,老刑警劉巖弹谁,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異句喜,居然都是意外死亡,警方通過查閱死者的電腦和手機沟于,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門咳胃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旷太,你說我怎么就攤上這事展懈∠觯” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵存崖,是天一觀的道長冻记。 經(jīng)常有香客問我,道長来惧,這世上最難降的妖魔是什么冗栗? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮供搀,結(jié)果婚禮上隅居,老公的妹妹穿的比我還像新娘。我一直安慰自己葛虐,他們只是感情好胎源,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屿脐,像睡著了一般涕蚤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上的诵,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天万栅,我揣著相機與錄音,去河邊找鬼奢驯。 笑死申钩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瘪阁。 我是一名探鬼主播撒遣,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼管跺!你這毒婦竟也來了义黎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤豁跑,失蹤者是張志新(化名)和其女友劉穎廉涕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艇拍,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡狐蜕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卸夕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片层释。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖快集,靈堂內(nèi)的尸體忽然破棺而出贡羔,到底是詐尸還是另有隱情廉白,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布乖寒,位于F島的核電站猴蹂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏楣嘁。R本人自食惡果不足惜磅轻,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望马澈。 院中可真熱鬧瓢省,春花似錦、人聲如沸痊班。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涤伐。三九已至馒胆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凝果,已是汗流浹背祝迂。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留器净,地道東北人型雳。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓翠霍,卻偏偏與公主長得像饥脑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子穷劈,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容