Docker中未指定掛載點容器間volume卷的數據共享

一 背景

在實際使用過程當中,咱們可能會常常遇到容器間數據共享的狀況,怎麼處理呢?經過 docker 命令中的一些選項,咱們便可完成容器間的數據共享。docker

二 實驗步驟

2.1 建立容器

容器一:gysl-1bash

[root@dev ~]# docker run -it --rm --name gysl-1 -v /data-1 alpine

容器二:gysl-2ide

[root@dev ~]# docker run -it --rm --volumes-from gysl-1 --name gysl-2 alpine

2.2 驗證數據共享狀況

在容器gysl-1建立文件:gysl-1.txtspa

/ # cd data-1/
/data-1 # touch gysl-1.txt

在容器gysl-2建立文件:gysl-2.txt3d

/ # cd data-1/
/data-1 # touch gysl-2.txt

分別在兩個容器查看:code

/data-1 # ls -lh
total 0
-rw-r--r--    1 root     root           0 Jan 10 18:45 gysl-1.txt
-rw-r--r--    1 root     root           0 Jan 10 18:47 gysl-2.txt

兩個容器的data-1目錄下的內容徹底一致。rem

三 總結

3.1 當一個容器的volume被其餘容器共享時,其餘容器是不須要建立共享目錄的,共享目錄會在其餘容器內被自動建立,與被共享容器的目錄名稱一致。it

3.2 一個容器的volume能夠被多個容器同時共享。ast

3.3 當容器被刪除時,volume不會被自動刪除。若是數據不會再次被使用,那麼能夠經過手動來刪除已經廢棄的volume,命令以下:class

[root@dev ~]# docker volume ls
DRIVER              VOLUME NAME
local               8126b3ad828a9a7e29ec04f4d7a1901be5e40ca6157fde62dca3421322e5de7a
local               bf80e1eb66685161cb6bf6943079de4a68a7bc3db3bba241347ed051fe59fc46
[root@dev ~]# docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B

也能夠:

docker volume rm volume_name

還能夠(在刪除容器的同時強制刪除volume):

docker rm -vf container_name
相關文章
相關標籤/搜索