Docker的核心概念與安裝(2)

Docker分為3個(gè)核心概念:

1.鏡像(Image)
2.容器(Container)
3.倉庫(Repository)
理解了這三個(gè)概念,就能順利地理解Docker的整個(gè)生命周期。

2.1 核心概念
Docker鏡像

Docker鏡像類似于虛擬機(jī)鏡像,可以將它理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)。例如:一個(gè)鏡像可以只包含一個(gè)完整的ubuntu操作系統(tǒng)環(huán)境,可以把它稱為Ubuntu鏡像。鏡像也可以安裝了nginx應(yīng)用程序(或用戶需要的其他軟件),可以稱它為nginx鏡像。

鏡像是創(chuàng)建Docker容器的基礎(chǔ)。通過對(duì)版本管理和增量的文件系統(tǒng),Docker提供了一套十分簡單的機(jī)制來創(chuàng)建和更新現(xiàn)有的鏡像,用戶甚至可以從網(wǎng)上下載一個(gè)已經(jīng)做好的應(yīng)用鏡像,并通過簡單的命令就可以直接使用。

Docker容器

容器是從鏡像創(chuàng)建的應(yīng)用運(yùn)行實(shí)例,可以將其啟動(dòng),開始,停止,刪除,而這些容器都是相互隔離,互不可見的。
我們可以把容器看作一個(gè)簡易版的linux系統(tǒng)環(huán)境(這包括root用戶權(quán)限,進(jìn)程空間,用戶空間和網(wǎng)絡(luò)空間等),以及運(yùn)行在其中的應(yīng)用程序打包而成的應(yīng)用盒子。
鏡像自身是只讀的。容器從鏡像啟動(dòng)的時(shí)候,Docker會(huì)在鏡像的最上層創(chuàng)建一個(gè)可寫層,鏡像本身保持不變。

Doker倉庫

Doker倉庫(Repository)類似于代碼倉庫,是Docker集中存放鏡像文件的場所。
有時(shí)候會(huì)看到有資料將Docker倉庫和注冊(cè)服務(wù)器(Registry)混為一談,并不嚴(yán)格區(qū)分.實(shí)際上,注冊(cè)服務(wù)器是存放倉庫的地方,其上存放著多個(gè)倉庫。每個(gè)倉庫集中存放某一類鏡像,往往包括多個(gè)鏡像文件,通過不同的標(biāo)簽(tag)來進(jìn)行區(qū)分.根據(jù)所存儲(chǔ)的鏡像公開與否,Docker倉庫可以分為公開倉庫(Public)和私有倉庫(Private)兩種形式。目前,最大的公開倉庫是Docker Hub,存放著數(shù)量龐大的鏡像供用戶下載。國內(nèi)公開的倉庫包括Dokcer Pool等,可以提供穩(wěn)定的國內(nèi)訪問。當(dāng)然,用戶如果不希望公開分享自己的鏡像文件,Docker也支持用戶在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個(gè)只能自己訪問的私有倉庫。當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用Push命令將它上傳到指定的公有或私有倉庫。這樣用戶下次在另外一臺(tái)機(jī)器上使用該鏡時(shí),只需將其從倉庫上Pull下來就可以了.

可以看出,Docker利用倉庫管理鏡像的設(shè)計(jì)理念與Git非常相似。

2.2 安裝Docker

Docker支持在主流的操作系統(tǒng)平臺(tái)上使用,包括Ubuntu,CentOS,Windwos以及MacOS系統(tǒng)
等。當(dāng)然,在linux系列平臺(tái)上是原生支持的,使用體驗(yàn)更好。本文使用CentOS7系列來做實(shí)例說明。

Docker支持CentOS6及以后的版本。
對(duì)于CentOS6系統(tǒng)可使用EPEL庫安裝Docker,具體添加EPEL源就不說了。命令如下:
yum install docker-io

對(duì)于CentOS7系統(tǒng),由于CentOS-Extras源中已內(nèi)置Docker,我們可以直接使用如下命令安裝:

[root@daquan ~]# yum install docker
Loaded plugins: fastestmirror, langpacks
epel                                                                                                                                                | 4.3 kB  00:00:00     
extras                                                                                                                                              | 3.4 kB  00:00:00     
nginx                                                                                                                                               | 2.9 kB  00:00:00     
os                                                                                                                                                  | 3.6 kB  00:00:00     
updates                                                                                                                                             | 3.4 kB  00:00:00     
(1/2): epel/7/x86_64/primary_db                                                                                                                     | 4.6 MB  00:00:00     
Loading mirror speeds from cached hostfile
Package 2:docker-1.12.6-11.el7.centos.x86_64 already installed and latest version
Nothing to do

此處我已安裝。

查看Docker的版本,發(fā)現(xiàn)還是1.12版本的。
[root@daquan ~]# docker version
Client:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-common-1.12.6-11.el7.centos.x86_64
 Go version:      go1.7.4
 Git commit:      96d83a5/1.12.6
 Built:           Tue Mar  7 09:23:34 2017
 OS/Arch:         linux/amd64

Server:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-common-1.12.6-11.el7.centos.x86_64
 Go version:      go1.7.4
 Git commit:      96d83a5/1.12.6
 Built:           Tue Mar  7 09:23:34 2017
 OS/Arch:         linux/amd64

啟動(dòng)docker:
systemctl start docker.service

目前在CentOS系統(tǒng)中更新Docker軟件有兩種方法,一是自行通過源碼編譯安裝,二是下載二進(jìn)制文件進(jìn)行更新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容