您好,登錄后才能下訂單哦!
在實際使用過程中,我們可能會經常遇到容器間數據共享的情況,怎么處理呢?通過 docker 命令中的一些選項,我們即可完成容器間的數據共享。
容器一: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
在容器gysl-1創建文件:gysl-1.txt
/ # cd data-1/
/data-1 # touch gysl-1.txt
在容器gysl-2創建文件:gysl-2.txt
/ # cd data-1/
/data-1 # touch gysl-2.txt
分別在兩個容器查看:
/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目錄下的內容完全一致。
3.1 當一個容器的volume被其他容器共享時,其他容器是不需要創建共享目錄的,共享目錄會在其他容器內被自動創建,與被共享容器的目錄名稱一致。
3.2 一個容器的volume可以被多個容器同時共享。
3.3 當容器被刪除時,volume不會被自動刪除。如果數據不會再次被使用,那么可以通過手動來刪除已經廢棄的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
還可以(在刪除容器的同時強制刪除volume):
docker rm -vf container_name
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。