Docker中未指定掛載點(diǎn)容器間volume卷的數(shù)據(jù)共享

一 背景

在實(shí)際使用過(guò)程中,我們可能會(huì)經(jīng)常遇到容器間數(shù)據(jù)共享的情況,怎么處理呢?通過(guò) docker 命令中的一些選項(xiàng),我們即可完成容器間的數(shù)據(jù)共享。

二 實(shí)驗(yàn)步驟

2.1 創(chuàng)建容器

容器一:gysl-1

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

容器二:gysl-2

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

2.2 驗(yàn)證數(shù)據(jù)共享情況

在容器gysl-1創(chuàng)建文件:gysl-1.txt

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

在容器gysl-2創(chuàng)建文件:gysl-2.txt

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

分別在兩個(gè)容器查看:

/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

兩個(gè)容器的data-1目錄下的內(nèi)容完全一致。

三 總結(jié)

3.1 當(dāng)一個(gè)容器的volume被其他容器共享時(shí),其他容器是不需要?jiǎng)?chuàng)建共享目錄的,共享目錄會(huì)在其他容器內(nèi)被自動(dòng)創(chuàng)建,與被共享容器的目錄名稱一致。

3.2 一個(gè)容器的volume可以被多個(gè)容器同時(shí)共享。

3.3 當(dāng)容器被刪除時(shí),volume不會(huì)被自動(dòng)刪除。如果數(shù)據(jù)不會(huì)再次被使用,那么可以通過(guò)手動(dòng)來(lái)刪除已經(jīng)廢棄的volume,命令如下:

[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

還可以(在刪除容器的同時(shí)強(qiáng)制刪除volume):

docker rm -vf container_name
最后編輯于
?著作權(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),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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