?
This document uses PHP Chinese website manual Release
要開始在 Debian 上使用 Docker CE,請(qǐng)確保滿足先決條件,然后安裝 Docker。
Docker EE 不支持 Debian。有關(guān)不同 Docker 版本支持的操作系統(tǒng)和發(fā)行版的列表,請(qǐng)參閱 Docker 變體。
要安裝 Docker CE,您需要這些 Debian 或 Raspbian 版本的64位版本:
Stretch (stable)
Jessie 8.0 (LTS) / Raspbian Jessie
Wheezy 7.7 (LTS)
Docker CE 在Jessie 和 Stretch 的x86_64
(或amd64
)和armhf
架構(gòu)上都受支持。
老版本的 Docker 被稱為docker
或docker-engine
。如果這些已安裝,請(qǐng)將其卸載:
$ sudo apt-get remove docker docker-engine docker.io
如果apt-get
報(bào)告說(shuō)沒(méi)有安裝這些軟件包,那就行了。
/var/lib/docker/
包括圖像,容器,卷和網(wǎng)絡(luò)的內(nèi)容將被保留。現(xiàn)在調(diào)用Docker CE包docker-ce
。
您至少需要 Linux 內(nèi)核的3.10版本。Debian Wheezy 隨附3.2版本,因此您可能需要更新內(nèi)核。檢查你的內(nèi)核版本:$ uname -r
啟用backports
存儲(chǔ)庫(kù)。請(qǐng)參閱Debian文檔。
您可以根據(jù)您的需要以不同的方式安裝Docker CE:
大多數(shù)用戶設(shè)置 Docker 的存儲(chǔ)庫(kù)并從中進(jìn)行安裝,以便安裝和升級(jí)任務(wù)。這是推薦的方法。
有些用戶下載 DEB 軟件包并手動(dòng)安裝,并完全手動(dòng)管理升級(jí)。這對(duì)于在無(wú)法訪問(wèn)互聯(lián)網(wǎng)的空隙系統(tǒng)上安裝 Docker 等情況很有用。
在測(cè)試和開發(fā)環(huán)境中,有些用戶選擇使用自動(dòng)便利腳本來(lái)使用存儲(chǔ)庫(kù)安裝 Docker.Install。首次在新主機(jī)上安裝Docker CE 之前,需要設(shè)置 Docker 存儲(chǔ)庫(kù)。之后,您可以從存儲(chǔ)庫(kù)安裝并更新 Docker。設(shè)置存儲(chǔ)庫(kù)
更新apt
包裹索引:
$ sudo apt-get update
安裝軟件包以允許apt
通過(guò)HTTPS使用存儲(chǔ)庫(kù): Jessie或Stretch:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg2 \ software-properties-common Wheezy:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ python-software-properties
添加Docker的官方GPG密鑰:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
驗(yàn)證密鑰ID是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
。
$ sudo apt-key指紋0EBFCD88 pub 4096R / 0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker發(fā)布(CE deb)docker@docker.com sub 4096R / F273FCD8 2017-02-22
使用以下命令設(shè)置穩(wěn)定的存儲(chǔ)庫(kù)。即使您想從邊緣或測(cè)試存儲(chǔ)庫(kù)安裝構(gòu)建,也總是需要穩(wěn)定的存儲(chǔ)庫(kù)。要添加邊緣或測(cè)試存儲(chǔ)庫(kù),請(qǐng)?jiān)谙旅娴拿钪刑砑訂卧~或(或兩者)后面的單詞。 注:在下面的子命令返回的Debian發(fā)行版的名稱,如。要還加了邊庫(kù),添加后在命令的最后一行。 x86_64:$ sudo add-apt-repository \“deb arch = amd64edgeteststablelsb_release -csjessieedgestable
https://download.docker.com/linux/debian \ $(lsb_release -cs)\ stable“ armhf:$ echo”deb arch = armhf https://download.docker.com/linux/debian \ $(lsb_release - cs)stable“| \ sudo tee /etc/apt/sources.list.d/docker.list
Wheezy only:Wheezy上的版本add-apt-repository
添加了一個(gè)deb-src
不存在的存儲(chǔ)庫(kù)。您需要注釋掉此存儲(chǔ)庫(kù)或運(yùn)行apt-get update
將失敗。編輯/etc/apt/sources.list
。找到如下所示的行,并將其注釋掉或刪除它:
deb-src arch = amd64 https://download.docker.com/linux/debian wheezy stable
保存并退出文件。
注意:從 Docker 17.06 開始,穩(wěn)定版本也被推到邊緣并測(cè)試版本庫(kù)。
了解穩(wěn)定和邊緣頻道。
注意:在Debian for ARM上,您可以繼續(xù)執(zhí)行此步驟。對(duì)于Raspbian,請(qǐng)向下滾動(dòng)以遵循其特定步驟。
更新apt
軟件包索引。$ sudo apt-get update
安裝最新版本的 Docker CE,或轉(zhuǎn)到下一步安裝特定版本。任何現(xiàn)有的 Docker安裝都會(huì)被替換。
$sudo apt-get install docker-ce
有多個(gè) Docker 存儲(chǔ)庫(kù)?
如果啟用了多個(gè) Docker 存儲(chǔ)庫(kù),則安裝或更新時(shí)未指定版本apt-get install
或apt-get update
命令將始終安裝盡可能高的版本,這可能不適合您的穩(wěn)定性需求。
在生產(chǎn)系統(tǒng)上,您應(yīng)該安裝特定版本的Docker CE,而不是始終使用最新版本。此輸出被截?cái)唷A谐隹捎玫陌姹荆? apt-cache madison docker-ce docker-ce | 17.06.0?ce-0?debian | https://download.docker.com/linux/debian jessie / stable amd64軟件包列表的內(nèi)容取決于啟用了哪些存儲(chǔ)庫(kù)。選擇一個(gè)特定的版本進(jìn)行安裝。第二列是版本字符串。第三列是存儲(chǔ)庫(kù)名稱,它指示軟件包來(lái)自哪個(gè)存儲(chǔ)庫(kù)并且通過(guò)擴(kuò)展其穩(wěn)定性級(jí)別。要安裝特定版本,請(qǐng)將版本字符串附加到包名稱,并用等號(hào)(=
)將它們分開:$ sudo apt-get install docker-ce = <VERSION_STRING> Docker守護(hù)進(jìn)程自動(dòng)啟動(dòng)。
通過(guò)運(yùn)行hello-world
映像驗(yàn)證是否正確安裝了Docker CE 。
x86_64:
$ sudo docker run hello-world
armhf:
$ sudo docker run armhf / hello-world
該命令下載測(cè)試圖像并將其運(yùn)行到容器中。當(dāng)容器運(yùn)行時(shí),它會(huì)打印一條信息消息并退出。
Docker CE 已安裝并正在運(yùn)行。您需要使用sudo
運(yùn)行 Docker
命令。繼續(xù) Linux postinstall 以允許非特權(quán)用戶運(yùn)行 Docker 命令以及其他可選配置步驟。
要升級(jí) Docker CE,請(qǐng)先運(yùn)行sudo apt-get update
,然后按照安裝說(shuō)明進(jìn)行操作,然后選擇要安裝的新版本。
注意:如果您使用推薦的
$ curl -sSL https://get.docker.com | sh
命令,則這不是必需的。
一旦你添加了Docker倉(cāng)庫(kù)/etc/apt/sources.list.d/
,你應(yīng)該看看docker.list
你是否:
$ ls /etc/apt/sources.list.d/
該內(nèi)容docker.list
應(yīng)該是:
deb [arch=armhf] https://apt.dockerproject.org/repo raspbian-jessie main
如果你沒(méi)有看到,在docker.list
,那么無(wú)論注釋行了,或者rm
該docker.list
文件。
一旦你確認(rèn)你有正確的存儲(chǔ)庫(kù),你可以繼續(xù)安裝Docker。
更新apt
軟件包索引。$ sudo apt-get update
安裝最新版本的 Docker CE,或轉(zhuǎn)到下一步安裝特定版本。任何現(xiàn)有的 Docker CE 安裝都將被替換。
使用此命令安裝最新版本的 Docker:
$ sudo apt-get install docker-engine
注意:默認(rèn)情況下,Raspbian上的Docker是Docker Community Edition。
注意:如果curl -sSL https://get.docker.com | sh
沒(méi)有使用,docker將不會(huì)自動(dòng)完成!你必須手動(dòng)添加它。
通過(guò)運(yùn)行hello-world
映像驗(yàn)證是否正確安裝了Docker CE 。$ sudo docker運(yùn)行hypriot / armhf-hello-world這個(gè)命令下載一個(gè)測(cè)試圖像并在一個(gè)容器中運(yùn)行它。當(dāng)容器運(yùn)行時(shí),它會(huì)打印一條信息消息并退出。(可選)為Raspbian安裝Docker Compose Hypriot為Raspbian 提供了一個(gè)靜態(tài)二進(jìn)制文件docker-compose
。要使用它,首先遵循Hypriot 關(guān)于設(shè)置存儲(chǔ)庫(kù)的說(shuō)明,然后運(yùn)行以下命令:sudo apt-get install從軟件包中執(zhí)行docker-composeInstall如果不能使用Docker的存儲(chǔ)庫(kù)來(lái)安裝Docker CE,則可以下載.deb
文件以供發(fā)布,手動(dòng)安裝。每次要升級(jí)Docker時(shí),都需要下載一個(gè)新文件。
轉(zhuǎn)到https://download.docker.com/linux/debian/dists/,選擇您的 Debian 版本,瀏覽到pool/stable/
,選擇amd64
或者armhf
,然后下載.deb
您想要安裝的Docker CE版本的文件。
注意:要安裝邊緣軟件包,stable
請(qǐng)將 URL 中的單詞更改為edge
。了解穩(wěn)定和邊緣頻道。
安裝 Docker CE,將下面的路徑更改為您下載 Docker 軟件包的路徑。$ sudo dpkg -i /path/to/package.deb Docker 守護(hù)進(jìn)程自動(dòng)啟動(dòng)。
通過(guò)運(yùn)行hello-world
映像驗(yàn)證是否正確安裝了Docker CE 。
$ sudo docker run hello-world
該命令下載測(cè)試圖像并將其運(yùn)行到容器中。當(dāng)容器運(yùn)行時(shí),它會(huì)打印一條信息消息并退出。
Docker CE 已安裝并正在運(yùn)行。您需要使用sudo
運(yùn)行 Docker
命令。繼續(xù)進(jìn)行 Linux 的安裝后步驟,以允許非特權(quán)用戶運(yùn)行Docker 命令以及其他可選配置步驟。
要升級(jí) Docker,請(qǐng)下載較新的軟件包文件并重復(fù)安裝過(guò)程,指向新文件。
Docker 在 get.docker.com 和 test.docker.com上提供了便捷腳本,用于將 Docker CE 的穩(wěn)定版和測(cè)試版快速且非交互地安裝到開發(fā)環(huán)境中。腳本的源代碼位于docker-install
存儲(chǔ)庫(kù)中。不建議在生產(chǎn)環(huán)境中使用這些腳本,并且在使用它們之前應(yīng)了解其潛在風(fēng)險(xiǎn):
腳本需要root
或sudo
權(quán)限才能運(yùn)行。因此,在運(yùn)行腳本之前,應(yīng)仔細(xì)檢查和審核腳本。
這些腳本會(huì)嘗試檢測(cè)您的 Linux 發(fā)行版和版本,并為您配置您的軟件包管理系統(tǒng)。另外,這些腳本不允許您自定義任何安裝參數(shù)。這可能會(huì)導(dǎo)致不支持的配置,無(wú)論是從 Docker 的角度還是從您自己的組織準(zhǔn)則和標(biāo)準(zhǔn)。
這些腳本會(huì)安裝包管理器的所有依賴關(guān)系和建議,而不要求確認(rèn)。這可能會(huì)安裝大量的包,具體取決于主機(jī)的當(dāng)前配置。
如果 Docker 已經(jīng)使用其他機(jī)制安裝在主機(jī)上,請(qǐng)不要使用便捷腳本。
本示例使用 get.docker.com 上的腳本在 Linux 上安裝 Docker CE 的最新穩(wěn)定版本。要安裝最新的測(cè)試版本,請(qǐng)改用test.docker.com。在下面的每個(gè)命令,取代每次出現(xiàn)get
用test
。
本節(jié)中的信息解釋如何自定義 Docker 默認(rèn)橋。這是一個(gè)bridge
網(wǎng)絡(luò)名bridge
安裝 Docker 時(shí)自動(dòng)創(chuàng)建。
注意:通過(guò) Docker 網(wǎng)絡(luò)功能,您可以創(chuàng)建除默認(rèn)網(wǎng)橋以外的用戶定義網(wǎng)絡(luò)。
默認(rèn)情況下,Docker 服務(wù)器創(chuàng)建并配置主機(jī)系統(tǒng)的docker0
一個(gè)稱為的網(wǎng)絡(luò)接口docker0
,它是一個(gè)以太網(wǎng)橋設(shè)備。如果您在啟動(dòng)容器時(shí)未指定其他網(wǎng)絡(luò),則容器將連接到網(wǎng)橋,并且來(lái)自和去往容器的所有流量都會(huì)通過(guò)網(wǎng)橋流向 Docker 守護(hù)程序,
Docker 守護(hù)程序?qū)⒋砣萜魈幚砺酚伞?/p>
Docker docker0
使用 IP 地址,網(wǎng)絡(luò)掩碼和 IP 分配范圍進(jìn)行配置。連接到默認(rèn)網(wǎng)橋的容器在此范圍內(nèi)分配 IP 地址。某些默認(rèn)設(shè)置適用于默認(rèn)網(wǎng)橋,除非您另行指定。例如,默認(rèn)的最大傳輸單元(MTU)或容器允許的最大數(shù)據(jù)包長(zhǎng)度默認(rèn)為1500字節(jié)。
您可以使用該dockerd
命令的標(biāo)志來(lái)配置默認(rèn)橋接網(wǎng)絡(luò)的設(shè)置。但是,配置 Docker 守護(hù)進(jìn)程的推薦方式是使用daemon.json
位于/etc/docker/
Linux上的文件。如果該文件不存在,請(qǐng)創(chuàng)建它。您可以指定一個(gè)或多個(gè)以下設(shè)置來(lái)配置默認(rèn)橋接網(wǎng)絡(luò):
{ "bip": "192.168.1.5/24", "fixed-cidr": "10.20.0.0/16", "fixed-cidr-v6": "2001:db8::/64", "mtu": 1500, "default-gateway": "10.20.1.1", "default-gateway-v6": "2001:db8:abcd::89", "dns": ["10.20.1.2","10.20.1.3"]}
在對(duì)daemon.json
文件進(jìn)行更改后重新啟動(dòng) Docker 。
相同的選項(xiàng)作為標(biāo)志顯示dockerd
,并分別給出解釋:
--bip=CIDR
:docker0
使用標(biāo)準(zhǔn) CIDR 表示法為橋提供特定的IP地址和網(wǎng)絡(luò)掩碼。例如:192.168.1.5/24
。
--fixed-cidr=CIDR
并且--fixed-cidr-v6=CIDRv6
:docker0
使用標(biāo)準(zhǔn)的 CIDR 表示法來(lái)限制子網(wǎng)的IP范圍。例如:172.16.1.0/28
。此范圍必須是固定IP的IPv4范圍10.20.0.0/16
,并且必須是網(wǎng)橋 IP 范圍的子集(docker0
或使用set --bridge
)。例如,--fixed-cidr=192.168.1.0/25
對(duì)于您的容器,將從192.168.1.0/24
子網(wǎng)中包含的前半部分地址中選擇 IP。
--mtu=BYTES
:覆蓋最大數(shù)據(jù)包長(zhǎng)度docker0
。
--default-gateway=Container default Gateway IPV4 address
和--default-gateway-v6=Container default gateway IPV6 address
:指定連接到docker0
網(wǎng)橋的容器的默認(rèn)網(wǎng)關(guān),默認(rèn)網(wǎng)關(guān)控制它們?cè)谀睦锫酚闪髁?。適用于使用--bip
和--fixed-cidr
標(biāo)志設(shè)置的地址。例如,你可以配置--fixed-cidr=172.17.2.0/24
和default-gateway=172.17.1.1
。
--dns=[]
:要使用的 DNS 服務(wù)器。例如:--dns=172.17.2.10
。
一旦啟動(dòng)并運(yùn)行了一個(gè)或多個(gè)容器,您可以docker0
通過(guò)brctl
在主機(jī)上運(yùn)行命令并查看interfaces
輸出的列來(lái)確認(rèn)Docker 已將其正確連接到網(wǎng)橋。此示例顯示了docker0
連接了兩個(gè)容器的橋:
如果該brctl
命令未安裝在您的 Docker 主機(jī)上,那么在
Ubuntu 上您應(yīng)該可以運(yùn)行sudo apt-get install bridge-utils
以安裝它。