數據卷添加
直接命令添加
命令:docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名
主機下面的目錄會自動建立
查看數據卷是否掛載成功:docker inspect 容器id 查看數據綁定
容器和宿主機之間數據是否共享?—— 共享
容器中止退出後,主機修改數據,容器再次啓動後數據是否同步?—— 是
命令(帶權限,相似於寫保護):docker run -it -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名
DockerFile添加
1.根目錄下新建mydocker文件夾並進入
cd /
mkdir mydocker
2.可在DockerFile中使用VOLUME指令來給鏡像添加一個或多個數據卷
VOLUME["/dataVolumeContainer", "/dataVolumeContainer2", "/dataVolumeContainer3"]
由於遷移性的緣由,不能指定主機目錄
3.File構建
FROM ubuntu
VOLUME ["/dataVolumeContainer1","/dataVolumeCintainer2"]
CMD echo "finished --success"
CMD /bin/bash
4.build 後生成新鏡像 wcj/ubuntu
docker build -f /mydocker/Dockerfile -t wcj/ubuntu .
5.run容器
docker run -it wcj/ubuntu
經過上述步驟,容器內的卷目錄地址已經知道,對應的主機目錄地址呢? ——主機對應默認地址。
docker inspect 容器id 查看一下
7.數據卷容器
命名的容器掛載數據卷,其餘容器經過掛載這個(父容器)實現數據共享,掛載數據卷的容器,稱之爲數據卷容器
活動硬盤上掛活動硬盤,實現數據的傳遞
容器之間配置信息的傳遞,數據卷的生命週期一直持續到沒有容器使用它爲止(只要還有一個容器掛載,數據卷就是一直在容器間互通的)
先啓動一個父容器dc01,在dataVolumeContainer2新增內容
docker run -it name dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc01_add.txt
dc02/dc03繼承自dc01,分別新增內容
docker run it --name dc02 --volumes-from dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc02_add.txt
docker run it --name dc03 --volumes-from dc01 wcj/ubuntu
touch /dataVolumeCintainer2/dc03_add.txt
回到dc01,能看到dc02和dc03添加的內容
刪除dc01,dc02修改後dc03能否訪問? ——能夠
刪除dc02後dc03能否訪問?——能夠
新建dc04繼承dc03後再刪除dc03?——仍是能夠訪問