Docker環(huán)境搭建

1、關(guān)于Docker

1.1橄仆、什么是Docker

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

Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中盆顾,然后發(fā)布到任何流行的Linux機(jī)器上怠褐,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制您宪,相互之間不會(huì)有任何接口奈懒。

一個(gè)完整的Docker有以下幾個(gè)部分組成:

dockerClient客戶端

Docker Daemon守護(hù)進(jìn)程

Docker Image鏡像

DockerContainer容器 [2]

1.2、為什么要使用Docker

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

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

由于容器不需要進(jìn)行硬件虛擬及運(yùn)行完整操作系統(tǒng)等額外開銷,Docker對(duì)系統(tǒng)資源的利用率更高揖铜。無論是應(yīng)用執(zhí)行速度茴丰、內(nèi)存損耗或者文件存儲(chǔ)速度,都要比傳統(tǒng)的虛擬機(jī)技術(shù)更高效天吓。因此贿肩,相比虛擬機(jī)技術(shù),一個(gè)相同配置的主機(jī)龄寞,往往可以運(yùn)行更多數(shù)量的應(yīng)用汰规。

更快速的啟動(dòng)時(shí)間

傳統(tǒng)的虛擬機(jī)技術(shù)啟動(dòng)應(yīng)用服務(wù)往往需要數(shù)分鐘,而Docker容器應(yīng)用物邑,由于直接運(yùn)行與宿主內(nèi)核溜哮,無需啟動(dòng)完整的操作系統(tǒng)滔金,因此可以做到秒級(jí)、甚至毫秒級(jí)別的啟動(dòng)時(shí)間茂嗓。大大的節(jié)約了開發(fā)餐茵、測(cè)試、部署的時(shí)間述吸。

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

開發(fā)過程中一個(gè)常見的問題是環(huán)境一致性問題忿族。由于開發(fā)環(huán)境、測(cè)試環(huán)境蝌矛、生產(chǎn)環(huán)境不一致道批,導(dǎo)致有些BUG并未在開發(fā)過程中被發(fā)現(xiàn)。而Docker的鏡像提供了除了內(nèi)核外完整的運(yùn)行時(shí)環(huán)境入撒,確保了應(yīng)用運(yùn)行環(huán)境得一致性隆豹,從而不會(huì)再出現(xiàn)“這段代碼在我機(jī)器上沒問題”這類問題。

持續(xù)交付和部署

對(duì)開發(fā)和運(yùn)維人員來說茅逮,最希望的就是一次性創(chuàng)建或配置璃赡,可以在任意地方正常運(yùn)行。

使用Docker可以通過定制應(yīng)用鏡像來實(shí)現(xiàn)持續(xù)集成氮唯、持續(xù)交付鉴吹、部署姨伟。開發(fā)人員可以通過DockerFile來進(jìn)行鏡像構(gòu)建惩琉,并結(jié)合 持續(xù)集成系統(tǒng)進(jìn)行集成測(cè)試,而運(yùn)維人員則可以直接在生產(chǎn)環(huán)境中快速部署該鏡像夺荒,甚至結(jié)合持續(xù)部署系統(tǒng)進(jìn)行自動(dòng)部署瞒渠。

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

更輕松的遷移

由于Docker確保了執(zhí)行環(huán)境得一致性剿吻,使得應(yīng)用的遷移更加容易窍箍。Docker可以在很多平臺(tái)上運(yùn)行,無論是物理機(jī)丽旅、虛擬機(jī)椰棘、公有云、私有云榄笙,甚至是筆記本邪狞,其運(yùn)行結(jié)果是一致的。因此用戶可以很輕易的將在一個(gè)平臺(tái)上運(yùn)行的應(yīng)用遷移到另一個(gè)平臺(tái)茅撞,而不用擔(dān)心運(yùn)行環(huán)境得變化導(dǎo)致應(yīng)用無法正常運(yùn)行的情況帆卓。

更輕松的維護(hù)和擴(kuò)展

Docker使應(yīng)用的分層存儲(chǔ)以及鏡像的技術(shù)巨朦,使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡(jiǎn)單剑令,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變的非常簡(jiǎn)單糊啡。此外,Docker團(tuán)隊(duì)同各個(gè)開源項(xiàng)目團(tuán)隊(duì)一起維護(hù)了一大批高質(zhì)量的官方鏡像吁津,既可以直接在生產(chǎn)環(huán)境使用悔橄,又可以作為基礎(chǔ)進(jìn)一步定制,大大的降低了應(yīng)用服務(wù)的鏡像制作成本腺毫。

image

摘自《Docker從入門到實(shí)踐》癣疟。

1.3、Docker版本分類

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

Docker社區(qū)版(CE):為了開發(fā)人員或小團(tuán)隊(duì)創(chuàng)建基于容器的應(yīng)用,與團(tuán)隊(duì)成員分享和自動(dòng)化的開發(fā)管道睛挚。docker-ce提供了簡(jiǎn)單的安裝和快速的安裝,以便可以立即開始開發(fā)急黎。docker-ce集成和優(yōu)化扎狱,基礎(chǔ)設(shè)施。(免費(fèi))

Docker企業(yè)版(EE):專為企業(yè)的發(fā)展和IT團(tuán)隊(duì)建立誰勃教。docker-ee為企業(yè)提供最安全的容器平臺(tái)淤击,以應(yīng)用為中心的平臺(tái)。(付費(fèi))

我們使用CE版本即可故源,即Docker-CE污抬。

Docker-CE有windows版本,我也安裝過绳军,但是有太多莫名其妙的問題印机,確實(shí)無法使用,所以就嘗試在虛擬機(jī)的CentOS里使用Docker-CE门驾,效果非常棒射赛,這也就是我前面會(huì)花那么多篇幅來寫Windows下安裝CentOS的原因。這樣初學(xué)者不用再翻各種資料來進(jìn)行嘗試奶是,確保一氣呵成楣责。哈哈!

2聂沙、安裝Docker-CE(請(qǐng)先按步驟體驗(yàn)一下安裝過程秆麸,文章末尾會(huì)追加自動(dòng)化安裝腳本)

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

2.1豁生、Docker版本檢查

docker要求CentOS 系統(tǒng)的內(nèi)核版本高于 3.10 兔毒,安裝之前首先要驗(yàn)證你的CentOS 版本是否支持 Docker 漫贞。

更新為centos7
查看ip命令: ip addr
沒有ip解決方法:進(jìn)入 /etc/sysconfig/netwok-scripts/
---> vi ifcfg-ens33


image.png

最后 service network restart ip就出來了

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

$ 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

如果安裝過舊版本豪嗽,就會(huì)卸載當(dāng)前版本谴蔑;如果沒安裝過,運(yùn)行上面的命令也沒關(guān)系龟梦,只是提示未安裝

image

比較干凈隐锭,沒有需要?jiǎng)h除的歷史docker。

2.4计贰、安裝需要的軟件包

yum-util 提供yum-config-manager功能钦睡,另外兩個(gè)是devicemapper驅(qū)動(dòng)依賴的

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

2.5、設(shè)置yum源躁倒,清華鏡像倉庫荞怒,速度很快

yum -y install wget #如果沒有安裝wget則安裝,如已安裝則會(huì)跳過

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

 wget -O /etc/yum.repos.d/docker-ce.repo [https://download.docker.com/linux/centos/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 -y docker-ce # 安裝docker-ce

2.7褐桌、啟動(dòng)并加入開機(jī)啟動(dòng)

$ systemctl start docker

$ systemctl enable docker

2.8、驗(yàn)證安裝是否成功

如果有client和service兩部分象迎,則表示docker安裝啟動(dòng)都成功了

$ docker version
image

3荧嵌、安裝Docker Compose

以前使用 Docker 的時(shí)候,需要定義 Dockerfile 文件挖帘,然后使用 docker build完丽、docker run 等命令操作容器恋技。然而微服務(wù)架構(gòu)的應(yīng)用系統(tǒng)一般包含若干個(gè)微服務(wù)拇舀,每個(gè)微服務(wù)一般都會(huì)部署多個(gè)實(shí)例,如果每個(gè)微服務(wù)都要手動(dòng)啟停蜻底,那么效率之低骄崩,維護(hù)量之大可想而知。

使用 Docker Compose 可以輕松薄辅、高效地管理容器要拂,他是一個(gè)用于定義和運(yùn)行多容器Docker的應(yīng)用程序工具。

3.1站楚、運(yùn)行命令下載 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、輸入命令測(cè)試

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、自動(dòng)化安裝的腳本(后續(xù)我的項(xiàng)目都會(huì)編制相應(yīng)的腳本除盏,便于安裝和維護(hù))

體驗(yàn)過整個(gè)安裝過程后叉橱,是不是覺得有些麻煩?是的者蠕,命令行模式一步步執(zhí)行確實(shí)很啰嗦赏迟,還不好記。所以蠢棱,我為大家準(zhǔn)備了全自動(dòng)化的安裝腳本锌杀,并已經(jīng)上傳到了github,請(qǐng)到github拉取試用泻仙!github地址為:https://github.com/tanbushi/install-docker

拉取文件后糕再,可以將 install-docker.sh 上傳到虛擬機(jī)CentOS的任意目錄里,或者將 install-docker.sh 拷入上一篇文章所建立和映射的共享文件夾下(文章里的示例路徑為:F:\dockers)玉转,文章請(qǐng)參考:Docker搭建LNMP環(huán)境實(shí)戰(zhàn)(四):安裝VMware Tools共享文件夾突想;在虛擬機(jī)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

即可自動(dòng)完成 docker 及 docker-compose 的安裝究抓!Good Lucky猾担!

5、自動(dòng)化卸載docker的腳本

在github地址為:https://github.com/tanbushi/install-docker的項(xiàng)目里有個(gè)uninstall_docker.sh刺下,可以和install.sh進(jìn)行類似處理

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

$ ./uninstall-docker.sh

即可自動(dòng)完成 docker 的卸載绑嘹!

docker鏡像操作

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

docker容器操作

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

端口映射

docker run --name myTomcat3 -d -p 8090:8080  tomcat:8.5-alpine

docker實(shí)踐---安裝mysql

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

使用dockerfile部署javaweb項(xiàng)目

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)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市橘茉,隨后出現(xiàn)的幾起案子工腋,更是在濱河造成了極大的恐慌,老刑警劉巖畅卓,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件擅腰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡翁潘,警方通過查閱死者的電腦和手機(jī)趁冈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拜马,“玉大人渗勘,你說我怎么就攤上這事矾飞。” “怎么了呀邢?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵洒沦,是天一觀的道長。 經(jīng)常有香客問我价淌,道長申眼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任蝉衣,我火速辦了婚禮括尸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘病毡。我一直安慰自己财饥,他們只是感情好恭垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布唤蔗。 她就那樣靜靜地躺著胃榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僧家。 梳的紋絲不亂的頭發(fā)上雀摘,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音八拱,去河邊找鬼阵赠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肌稻,可吹牛的內(nèi)容都是我干的清蚀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼爹谭,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枷邪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起旦棉,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤齿风,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后绑洛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡童本,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年真屯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穷娱。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绑蔫,死狀恐怖运沦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情配深,我是刑警寧澤携添,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站篓叶,受9級(jí)特大地震影響烈掠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缸托,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一左敌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俐镐,春花似錦矫限、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棍苹,卻和暖如春咬扇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廊勃。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工懈贺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坡垫。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓梭灿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冰悠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子堡妒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 有人說其實(shí)這個(gè)世界上沒有誰離不開誰的桑寨, 我們本就是獨(dú)立的個(gè)體伏尼, 可是后來因?yàn)橛辛藧矍椋?我們都不再是獨(dú)立的個(gè)體, ...
    茗藝堂閱讀 236評(píng)論 0 1
  • python訪問sql-server python版本2.7如下代碼尉尾,需要給Python部署第三方庫 pymssq...
    黃白閱讀 800評(píng)論 0 0
  • 孩子晚上寫作業(yè)到1點(diǎn)多爆阶,我也陪到一點(diǎn),困得很,今天上午一直都睡覺了辨图。三八節(jié)祝自己節(jié)日快樂班套!感賞孩子主動(dòng)聽英語,為記...
    定靜慧心閱讀 162評(píng)論 0 0
  • 今天一天在公司故河,晚上6點(diǎn)回老家吃飯吱韭,陪伴父母聊天。講途近期的一些事情鱼的。每次回家母親都會(huì)準(zhǔn)備一些土雞蛋和新鮮蔬菜理盆。9...
    顧國勝閱讀 189評(píng)論 0 1