Docker 容器
操作 Docker 容器
容器是 Docker 又一核心概念。
簡(jiǎn)單的說,容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用偎箫,以及它們的運(yùn)行態(tài)環(huán)境。對(duì)應(yīng)的钧惧,虛擬機(jī)可以理解為模擬運(yùn)行的一整套操作系統(tǒng)(提供了運(yùn)行態(tài)環(huán)境和其他系統(tǒng)環(huán)境)和跑在上面的應(yīng)用。
本章將具體介紹如何來管理一個(gè)容器,包括創(chuàng)建、啟動(dòng)和停止等充岛。
啟動(dòng)容器
啟動(dòng)容器有兩種方式,一種是基于鏡像新建一個(gè)容器并啟動(dòng)批狱,另外一個(gè)是將在終止?fàn)顟B(tài)(stopped
)的容器重新啟動(dòng)裸准。
因?yàn)?Docker 的容器實(shí)在太輕量級(jí)了展东,很多時(shí)候用戶都是隨時(shí)刪除和新創(chuàng)建容器赔硫。
新建并啟動(dòng)
所需要的命令主要為docker run
。
例如盐肃,下面的命令輸出一個(gè) “Hello World”爪膊,之后終止容器权悟。
$ docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world
這跟在本地直接執(zhí)行/bin/echo 'hello world'
幾乎感覺不出任何區(qū)別。
下面的命令則啟動(dòng)一個(gè) bash 終端推盛,允許用戶進(jìn)行交互峦阁。
$ docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#
其中,-t
選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上耘成,-i
則讓容器的標(biāo)準(zhǔn)輸入保持打開榔昔。
在交互模式下,用戶可以通過所創(chuàng)建的終端來輸入命令瘪菌,例如
root@af8bae53bdd3:/# pwd
/
root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
當(dāng)利用docker run
來創(chuàng)建容器時(shí)撒会,Docker 在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:
- 檢查本地是否存在指定的鏡像,不存在就從公有倉(cāng)庫(kù)下載
- 利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器
- 分配一個(gè)文件系統(tǒng)师妙,并在只讀的鏡像層外面掛載一層可讀寫層
- 從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去
- 從地址池配置一個(gè) ip 地址給容器
- 執(zhí)行用戶指定的應(yīng)用程序
- 執(zhí)行完畢后容器被終止
啟動(dòng)已終止容器
可以利用docker container start
命令诵肛,直接將一個(gè)已經(jīng)終止的容器啟動(dòng)運(yùn)行。
容器的核心為所執(zhí)行的應(yīng)用程序默穴,所需要的資源都是應(yīng)用程序運(yùn)行所必需的怔檩。除此之外,并沒有其它的資源蓄诽⊙ρ担可以在偽終端中利用ps
或top
來查看進(jìn)程信息。
root@ba267838cc1b:/# ps
PID TTY TIME CMD
1 00:00:00 bash
11 00:00:00 ps
可見仑氛,容器中僅運(yùn)行了指定的 bash 應(yīng)用许蓖。這種特點(diǎn)使得 Docker 對(duì)資源的利用率極高,是貨真價(jià)實(shí)的輕量級(jí)虛擬化调衰。
守護(hù)態(tài)運(yùn)行
概述
更多的時(shí)候膊爪,需要讓 Docker 在后臺(tái)運(yùn)行而不是直接把執(zhí)行命令的結(jié)果輸出在當(dāng)前宿主機(jī)下。此時(shí)嚎莉,可以通過添加-d
參數(shù)來實(shí)現(xiàn)米酬。
下面舉兩個(gè)例子來說明一下。
如果不使用-d
參數(shù)運(yùn)行容器趋箩。
$ docker run ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
hello world
hello world
hello world
hello world
容器會(huì)把輸出的結(jié)果 (STDOUT) 打印到宿主機(jī)上面
如果使用了-d
參數(shù)運(yùn)行容器赃额。
$ docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a
此時(shí)容器會(huì)在后臺(tái)運(yùn)行并不會(huì)把輸出的結(jié)果 (STDOUT) 打印到宿主機(jī)上面(輸出結(jié)果可以用docker logs
查看)。
注:容器是否會(huì)長(zhǎng)久運(yùn)行叫确,是和docker run
指定的命令有關(guān)跳芳,和-d
參數(shù)無關(guān)。
使用-d
參數(shù)啟動(dòng)后會(huì)返回一個(gè)唯一的 id竹勉,也可以通過docker container ls
命令來查看容器信息飞盆。
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77b2dc01fe0f ubuntu:17.10 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright
要獲取容器的輸出信息,可以通過docker container logs
命令。
$ docker container logs [container ID or NAMES]
hello world
hello world
hello world
. . .
終止容器
可以使用docker container stop
來終止一個(gè)運(yùn)行中的容器吓歇。
此外孽水,當(dāng) Docker 容器中指定的應(yīng)用終結(jié)時(shí),容器也自動(dòng)終止城看。
例如對(duì)于上一章節(jié)中只啟動(dòng)了一個(gè)終端的容器女气,用戶通過exit
命令或Ctrl+d
來退出終端時(shí),所創(chuàng)建的容器立刻終止测柠。
終止?fàn)顟B(tài)的容器可以用docker container ls -a
命令看到炼鞠。例如
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton
98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike
處于終止?fàn)顟B(tài)的容器,可以通過docker container start
命令來重新啟動(dòng)轰胁。
此外簇搅,docker container restart
命令會(huì)將一個(gè)運(yùn)行態(tài)的容器終止,然后再重新啟動(dòng)它软吐。
進(jìn)入容器
在使用-d
參數(shù)時(shí)瘩将,容器啟動(dòng)后會(huì)進(jìn)入后臺(tái)。
某些時(shí)候需要進(jìn)入容器進(jìn)行操作凹耙,包括使用docker attach
命令或docker exec
命令姿现,推薦大家使用docker exec
命令,原因會(huì)在下面說明肖抱。
attach
命令
docker attach
是 Docker 自帶的命令备典。下面示例如何使用該命令。
$ docker run -dit ubuntu
243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
243c32535da7 ubuntu:latest "/bin/bash" 18 seconds ago Up 17 seconds nostalgic_hypatia
$ docker attach 243c
root@243c32535da7:/#
注意:如果從這個(gè) stdin 中 exit意述,會(huì)導(dǎo)致容器的停止提佣。
exec
命令
-i -t 參數(shù)
docker exec
后邊可以跟多個(gè)參數(shù),這里主要說明-i
-t
參數(shù)荤崇。
只用-i
參數(shù)時(shí)拌屏,由于沒有分配偽終端,界面沒有我們熟悉的 Linux 命令提示符术荤,但命令執(zhí)行結(jié)果仍然可以返回倚喂。
當(dāng)-i -t
參數(shù)一起使用時(shí),則可以看到我們熟悉的 Linux 命令提示符瓣戚。
$ docker run -dit ubuntu
69d137adef7a8a689cbcb059e94da5489d3cddd240ff675c640c8d96e84fe1f6
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
69d137adef7a ubuntu:latest "/bin/bash" 18 seconds ago Up 17 seconds zealous_swirles
$ docker exec -i 69d1 bash
ls
bin
boot
dev
...
$ docker exec -it 69d1 bash
root@69d137adef7a:/#
如果從這個(gè) stdin 中 exit端圈,不會(huì)導(dǎo)致容器的停止。這就是為什么推薦大家使用docker exec
的原因子库。
更多參數(shù)說明請(qǐng)使用docker exec --help
查看舱权。
訪問 Docker 倉(cāng)庫(kù)
倉(cāng)庫(kù)(Repository
)是集中存放鏡像的地方。
一個(gè)容易混淆的概念是注冊(cè)服務(wù)器(Registry
)仑嗅。實(shí)際上注冊(cè)服務(wù)器是管理倉(cāng)庫(kù)的具體服務(wù)器宴倍,每個(gè)服務(wù)器上可以有多個(gè)倉(cāng)庫(kù)张症,而每個(gè)倉(cāng)庫(kù)下面有多個(gè)鏡像。從這方面來說啊楚,倉(cāng)庫(kù)可以被認(rèn)為是一個(gè)具體的項(xiàng)目或目錄。例如對(duì)于倉(cāng)庫(kù)地址dl.dockerpool.com/ubuntu
來說浑彰,dl.dockerpool.com
是注冊(cè)服務(wù)器地址恭理,ubuntu
是倉(cāng)庫(kù)名。
大部分時(shí)候郭变,并不需要嚴(yán)格區(qū)分這兩者的概念颜价。
Docker Hub
目前 Docker 官方維護(hù)了一個(gè)公共倉(cāng)庫(kù) Docker Hub,其中已經(jīng)包括了數(shù)量超過 15,000 的鏡像诉濒。大部分需求都可以通過在 Docker Hub 中直接下載鏡像來實(shí)現(xiàn)周伦。
注冊(cè)
你可以在 https://cloud.docker.com 免費(fèi)注冊(cè)一個(gè) Docker 賬號(hào)。
登錄
可以通過執(zhí)行docker login
命令交互式的輸入用戶名及密碼來完成在命令行界面登錄 Docker Hub未荒。
你可以通過docker logout
退出登錄专挪。
拉取鏡像
你可以通過docker search
命令來查找官方倉(cāng)庫(kù)中的鏡像,并利用docker pull
命令來將它下載到本地片排。
例如以centos
為關(guān)鍵詞進(jìn)行搜索:
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 465 [OK]
tianon/centos CentOS 5 and 6, created using rinse instea... 28
blalor/centos Bare-bones base CentOS 6.5 image 6 [OK]
saltstack/centos-6-minimal 6 [OK]
tutum/centos-6.4 DEPRECATED. Use tutum/centos:6.4 instead. ... 5 [OK]
可以看到返回了很多包含關(guān)鍵字的鏡像寨腔,其中包括鏡像名字、描述率寡、收藏?cái)?shù)(表示該鏡像的受關(guān)注程度)迫卢、是否官方創(chuàng)建、是否自動(dòng)創(chuàng)建冶共。
官方的鏡像說明是官方項(xiàng)目組創(chuàng)建和維護(hù)的乾蛤,automated 資源允許用戶驗(yàn)證鏡像的來源和內(nèi)容。
根據(jù)是否是官方提供捅僵,可將鏡像資源分為兩類家卖。
一種是類似centos
這樣的鏡像,被稱為基礎(chǔ)鏡像或根鏡像庙楚。這些基礎(chǔ)鏡像由 Docker 公司創(chuàng)建篡九、驗(yàn)證、支持醋奠、提供榛臼。這樣的鏡像往往使用單個(gè)單詞作為名字。
還有一種類型窜司,比如tianon/centos
鏡像沛善,它是由 Docker 的用戶創(chuàng)建并維護(hù)的,往往帶有用戶名稱前綴塞祈〗鸬螅可以通過前綴username/
來指定使用某個(gè)用戶提供的鏡像,比如 tianon 用戶。
另外尤蛮,在查找的時(shí)候通過--filter=stars=N
參數(shù)可以指定僅顯示收藏?cái)?shù)量為N
以上的鏡像媳友。
下載官方centos
鏡像到本地。
$ docker pull centos
Pulling repository centos
0b443ba03958: Download complete
539c0211cd76: Download complete
511136ea3c5a: Download complete
7064731afe90: Download complete
推送鏡像
用戶也可以在登錄后通過docker push
命令來將自己的鏡像推送到 Docker Hub产捞。
以下命令中的username
請(qǐng)?zhí)鎿Q為你的 Docker 賬號(hào)用戶名醇锚。
$ docker tag ubuntu:17.10 username/ubuntu:17.10
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 17.10 275d79972a86 6 days ago 94.6MB
username/ubuntu 17.10 275d79972a86 6 days ago 94.6MB
$ docker push username/ubuntu:17.10
$ docker search username
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
username/ubuntu
自動(dòng)創(chuàng)建
自動(dòng)創(chuàng)建(Automated Builds)功能對(duì)于需要經(jīng)常升級(jí)鏡像內(nèi)程序來說,十分方便坯临。
有時(shí)候焊唬,用戶創(chuàng)建了鏡像,安裝了某個(gè)軟件看靠,如果軟件發(fā)布新版本則需要手動(dòng)更新鏡像赶促。
而自動(dòng)創(chuàng)建允許用戶通過 Docker Hub 指定跟蹤一個(gè)目標(biāo)網(wǎng)站(目前支持 GitHub 或 BitBucket)上的項(xiàng)目,一旦項(xiàng)目發(fā)生新的提交或者創(chuàng)建新的標(biāo)簽(tag)挟炬,Docker Hub 會(huì)自動(dòng)構(gòu)建鏡像并推送到 Docker Hub 中鸥滨。
要配置自動(dòng)創(chuàng)建,包括如下的步驟:
- 創(chuàng)建并登錄 Docker Hub谤祖,以及目標(biāo)網(wǎng)站爵赵;
- 在目標(biāo)網(wǎng)站中連接帳戶到 Docker Hub;
- 在 Docker Hub 中 配置一個(gè)自動(dòng)創(chuàng)建泊脐;
- 選取一個(gè)目標(biāo)網(wǎng)站中的項(xiàng)目(需要含
Dockerfile
)和分支空幻; - 指定
Dockerfile
的位置,并提交創(chuàng)建容客。
之后秕铛,可以在 Docker Hub 的 自動(dòng)創(chuàng)建頁(yè)面 中跟蹤每次創(chuàng)建的狀態(tài)。
Docker 私有倉(cāng)庫(kù)
有時(shí)候使用 Docker Hub 這樣的公共倉(cāng)庫(kù)可能不方便缩挑,用戶可以創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用但两。
本節(jié)介紹如何使用本地倉(cāng)庫(kù)。
docker-registry
是官方提供的工具供置,可以用于構(gòu)建私有的鏡像倉(cāng)庫(kù)谨湘。本文內(nèi)容基于 docker-registry
v2.x 版本。
安裝運(yùn)行 docker-registry
容器運(yùn)行
你可以通過獲取官方registry
鏡像來運(yùn)行芥丧。
$ docker run -d -p 5000:5000 --restart=always --name registry registry
這將使用官方的registry
鏡像來啟動(dòng)私有倉(cāng)庫(kù)紧阔。默認(rèn)情況下,倉(cāng)庫(kù)會(huì)被創(chuàng)建在容器的/var/lib/registry
目錄下续担。你可以通過-v
參數(shù)來將鏡像文件存放在本地的指定路徑擅耽。例如下面的例子將上傳的鏡像放到本地的/opt/data/registry
目錄。
$ docker run -d \
-p 5000:5000 \
-v /opt/data/registry:/var/lib/registry \
registry
在私有倉(cāng)庫(kù)上傳物遇、搜索乖仇、下載鏡像
創(chuàng)建好私有倉(cāng)庫(kù)之后憾儒,就可以使用docker tag
來標(biāo)記一個(gè)鏡像,然后推送它到倉(cāng)庫(kù)乃沙。例如私有倉(cāng)庫(kù)地址為127.0.0.1:5000
起趾。
先在本機(jī)查看已有的鏡像。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
使用docker tag
將ubuntu:latest
這個(gè)鏡像標(biāo)記為127.0.0.1:5000/ubuntu:latest
警儒。
格式為docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
训裆。
$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
使用docker push
上傳標(biāo)記的鏡像。
$ docker push 127.0.0.1:5000/ubuntu:latest
The push refers to repository [127.0.0.1:5000/ubuntu]
373a30c24545: Pushed
a9148f5200b0: Pushed
cdd3de0940ab: Pushed
fc56279bbb33: Pushed
b38367233d37: Pushed
2aebd096e0e2: Pushed
latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5a size: 1568
用curl
查看倉(cāng)庫(kù)中的鏡像冷蚂。
$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}
這里可以看到{"repositories":["ubuntu"]}
缭保,表明鏡像已經(jīng)被成功上傳了汛闸。
先刪除已有鏡像蝙茶,再嘗試從私有倉(cāng)庫(kù)中下載這個(gè)鏡像。
$ docker image rm 127.0.0.1:5000/ubuntu:latest
$ docker pull 127.0.0.1:5000/ubuntu:latest
Pulling repository 127.0.0.1:5000/ubuntu:latest
ba5877dc9bec: Download complete
511136ea3c5a: Download complete
9bad880da3d2: Download complete
25f11f5fb0cb: Download complete
ebc34468f71d: Download complete
2318d26665ef: Download complete
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
注意事項(xiàng)
如果你不想使用127.0.0.1:5000
作為倉(cāng)庫(kù)地址诸老,比如想讓本網(wǎng)段的其他主機(jī)也能把鏡像推送到私有倉(cāng)庫(kù)隆夯。你就得把例如192.168.199.100:5000
這樣的內(nèi)網(wǎng)地址作為私有倉(cāng)庫(kù)地址,這時(shí)你會(huì)發(fā)現(xiàn)無法成功推送鏡像别伏。
這是因?yàn)?Docker 默認(rèn)不允許非HTTPS
方式推送鏡像蹄衷。我們可以通過 Docker 的配置選項(xiàng)來取消這個(gè)限制,或者查看下一節(jié)配置能夠通過HTTPS
訪問的私有倉(cāng)庫(kù)厘肮。
Ubuntu 14.04, Debian 7 Wheezy
對(duì)于使用upstart
的系統(tǒng)而言愧口,編輯/etc/default/docker
文件,在其中的DOCKER_OPTS
中增加如下內(nèi)容:
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.199.100:5000"
重新啟動(dòng)服務(wù)类茂。
$ sudo service docker restart
Ubuntu 16.04+, Debian 8+, centos 7
對(duì)于使用systemd
的系統(tǒng)耍属,請(qǐng)?jiān)?code>/etc/docker/daemon.json中寫入如下內(nèi)容(如果文件不存在請(qǐng)新建該文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"192.168.199.100:5000"
]
}
注意:該文件必須符合
json
規(guī)范,否則 Docker 將不能啟動(dòng)巩检。
其他
對(duì)于 Docker for Windows 厚骗、 Docker for Mac 在設(shè)置中編輯daemon.json
增加和上邊一樣的字符串即可。
數(shù)據(jù)卷
概述
數(shù)據(jù)卷
是一個(gè)可供一個(gè)或多個(gè)容器使用的特殊目錄兢哭,它繞過 UFS领舰,可以提供很多有用的特性:
-
數(shù)據(jù)卷
可以在容器之間共享和重用 - 對(duì)
數(shù)據(jù)卷
的修改會(huì)立馬生效 - 對(duì)
數(shù)據(jù)卷
的更新,不會(huì)影響鏡像 -
數(shù)據(jù)卷
默認(rèn)會(huì)一直存在迟螺,即使容器被刪除
注意:
數(shù)據(jù)卷
的使用冲秽,類似于 Linux 下對(duì)目錄或文件進(jìn)行 mount,鏡像中的被指定為掛載點(diǎn)的目錄中的文件會(huì)隱藏掉矩父,能顯示看的是掛載的數(shù)據(jù)卷
劳跃。
選擇 -v 還是 -–mount 參數(shù)
Docker 新用戶應(yīng)該選擇--mount
參數(shù),經(jīng)驗(yàn)豐富的 Docker 使用者對(duì)-v
或者--volume
已經(jīng)很熟悉了浙垫,但是推薦使用--mount
參數(shù)刨仑。
創(chuàng)建一個(gè)數(shù)據(jù)卷
$ docker volume create my-vol
查看所有的數(shù)據(jù)卷
$ docker volume ls
local my-vol
在主機(jī)里使用以下命令可以查看指定數(shù)據(jù)卷
的信息
$ docker volume inspect my-vol
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
"Name": "my-vol",
"Options": {},
"Scope": "local"
}
]
啟動(dòng)一個(gè)掛載數(shù)據(jù)卷的容器
在用docker run
命令的時(shí)候郑诺,使用--mount
標(biāo)記來將數(shù)據(jù)卷
掛載到容器里。在一次docker run
中可以掛載多個(gè)數(shù)據(jù)卷
杉武。
下面創(chuàng)建一個(gè)名為web
的容器辙诞,并加載一個(gè)數(shù)據(jù)卷
到容器的/webapp
目錄。
$ docker run -d -P \
--name web \
# -v my-vol:/wepapp \
--mount source=my-vol,target=/webapp \
training/webapp \
python app.py
查看數(shù)據(jù)卷的具體信息
在主機(jī)里使用以下命令可以查看web
容器的信息
$ docker inspect web
數(shù)據(jù)卷
信息在 "Mounts" Key 下面
"Mounts": [
{
"Type": "volume",
"Name": "my-vol",
"Source": "/var/lib/docker/volumes/my-vol/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
刪除數(shù)據(jù)卷
$ docker volume rm my-vol
數(shù)據(jù)卷
是被設(shè)計(jì)用來持久化數(shù)據(jù)的轻抱,它的生命周期獨(dú)立于容器飞涂,Docker 不會(huì)在容器被刪除后自動(dòng)刪除 數(shù)據(jù)卷
,并且也不存在垃圾回收這樣的機(jī)制來處理沒有任何容器引用的 數(shù)據(jù)卷
祈搜。如果需要在刪除容器的同時(shí)移除數(shù)據(jù)卷较店。可以在刪除容器的時(shí)候使用 docker rm -v
這個(gè)命令容燕。
無主的數(shù)據(jù)卷可能會(huì)占據(jù)很多空間梁呈,要清理請(qǐng)使用以下命令
$ docker volume prune