很高興能和大家一起學(xué)習(xí)怎么使用Docker,這個(gè)文集的內(nèi)容翻譯自官網(wǎng)Get Started教程,由于英文直譯可能讀起來(lái)會(huì)有些吃力,所有這里是根據(jù)我個(gè)人的理解進(jìn)行的翻譯,如有不正確的地方,歡迎指正。
以下是這個(gè)文集的主要內(nèi)容:
在這一章節(jié)是簡(jiǎn)介,你將了解docker,知道如何安裝配置Docker
第二章,Container--容器,包含你的App在內(nèi)的所有運(yùn)行環(huán)境
第三章,Service--服務(wù),將容器實(shí)例轉(zhuǎn)變成服務(wù),可以運(yùn)行多個(gè)服務(wù),并實(shí)現(xiàn)負(fù)載均衡
第四章,Swarm--集群,將服務(wù)運(yùn)行在多個(gè)機(jī)器上,實(shí)現(xiàn)集群
第五章,Stack--棧,實(shí)現(xiàn)多個(gè)服務(wù)之間的依賴配置,啟動(dòng)順序以及批量服務(wù)的管理
概念介紹
鏡像(Image):鏡像是一種輕量型的,獨(dú)立的,可執(zhí)行的文件,包含你的App運(yùn)行時(shí)所有需要的一切,包括App的代碼,運(yùn)行時(shí)環(huán)境,庫(kù),環(huán)境變量以及配置文件等等。
容器(Container):鏡像的一個(gè)運(yùn)行時(shí)實(shí)例--即將鏡像文件加載到內(nèi)存并真正執(zhí)行,默認(rèn)情況下是不受宿主機(jī)器環(huán)境影響,只有在你有額外配置的時(shí)候才會(huì)訪問(wèn)宿主機(jī)器的文件和端口。
容器是運(yùn)行在操作系統(tǒng)內(nèi)核之上的,和通過(guò)宿主操作系統(tǒng)管理程序,獲取宿主機(jī)器資源的虛擬訪問(wèn)權(quán)限的虛擬機(jī)相比,擁有更好的性能。容器有本地訪問(wèn)權(quán)限,不同的容器是獨(dú)立運(yùn)行的,并且在執(zhí)行本地操作時(shí),并不會(huì)比直接操作消耗更多的內(nèi)存。
容器與虛擬機(jī)對(duì)比
大家從以下圖片就能看出來(lái),每個(gè)虛擬機(jī)都是運(yùn)行在一個(gè)單獨(dú)訪客(Guest)操作系統(tǒng)之上的,由于每一個(gè)虛擬機(jī)都包含一個(gè)操作系統(tǒng),所以虛擬機(jī)會(huì)消耗更多的資源。磁盤映像,App狀態(tài)與操作系統(tǒng)配置嚴(yán)重耦合在一起。對(duì)操作系統(tǒng)的依賴和操作系統(tǒng)權(quán)限配置導(dǎo)致很難移植到其他機(jī)器之上。
虛擬機(jī)

Docker容器

對(duì)Docker而言,多個(gè)容器共享同一個(gè)內(nèi)核。容器鏡像里只需要可執(zhí)行的文件以及他們的依賴,并且這些都不需要安裝在宿主機(jī)器的操作系統(tǒng)上。這些實(shí)例就像本地程序一樣運(yùn)行,而且你可以通過(guò)命令單獨(dú)管理,比如docker ps --就如同你再Linux系統(tǒng)上執(zhí)行ps命令查看進(jìn)程一樣簡(jiǎn)單。最后,由于容器包含了你所需要的一切依賴,不會(huì)和你的宿主機(jī)器配置有任何的糾纏,所以可以說(shuō),一個(gè)容器化的App,可以很方便移植(Rus Anywhere)。
安裝
在CentOS上安裝docker-ce(最新版)
添加Docker CE repository on CentOS:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
緩存庫(kù)的搜索列表到本地:
yum makecache fast
安裝docker-ce
yum -y install docker-ce
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
...(刪減)...
查看版本是否在1.13以上:
$ docker --version
Docker version 17.05.0-ce-rc1, build 2878a85
啟動(dòng)docker:
systemctl start docker
安裝國(guó)內(nèi)鏡像源:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef732055.m.daocloud.ioCopy
docker國(guó)內(nèi)鏡像倉(cāng)庫(kù)(linux, macOS, windows):
https://www.daocloud.io/mirror#accelerator-doc
該腳本可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中。適用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有細(xì)微不同。更多詳情請(qǐng)訪問(wèn)文檔。