思考:
1.Docker容器刪除后,在容器中的數據還在嗎?
2.Docker 容器和外部機器可以直接交換文件嗎?
3.容器之間想要進行數據交互?

image.png
為了解決以上3個問題,數據卷應運而生。
數據卷作用:
容器數據持久化
外部機器和容器間接通信
容器之間數據交換
數據卷:
數據卷是宿主機中的一個目錄或文件
當容器目錄和數據卷目錄綁定后,對方的修改會立即同步
一個數據卷可以被多個容器同時掛載
一個容器也可以被掛載多個數據卷
命令
創(chuàng)建容器時,使用 -v 參數,設置數據卷;
docker run ... -v 宿主機目錄(文件):容器內目錄(文件)...
docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
注意事項:
1.目錄必須是絕對路徑
2.如果目錄不存在,會自動創(chuàng)建
3.可以掛載多個數據卷
配置數據卷容器
多容器進行數據交換
- 多個容器掛載同一個數據卷
- 數據卷容器
命令
1.創(chuàng)建啟動c3數據卷容器,使用-v 參數 設置數據卷,/volume 指宿主機目錄
docker run -it --name=c3 -v /volume centos:7 /bin/bash
2.創(chuàng)建啟動c1 ,c2容器,使用 --volumes-from 參數,設置數據卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash
查看目錄映射關系
docker inspect -f "{{.Mounts}}" nginx