Docker:容器資料卷
阿新 • • 發佈:2020-09-17
背景
docker理念:
- 將應用與執行的環境打包形成容器,執行可以伴隨容器,但是我們對資料的要求希望是持久化的
- 容器之間希望可以有共享資料
Docker容器產生的資料,如果不通過docker commit生成新的映象,使得資料作為映象的一部分儲存下來,那麼當容器刪除以後,資料自然就沒有了。
為了能儲存資料,在docker中我們使用容器資料卷。
特點: - 資料卷可以在容器之間共享或重用資料
- 卷中的更改直接生效
- 資料卷中的更改不會包含在映象的更新中。
- 資料卷的生命週期一直持續到沒有容器使用它為止。
資料卷新增
命令:
docker run -it -v /宿主機絕對路徑目錄:/容器目錄 映象名
容器內目錄不能修改檔案,只能檢視,宿主機可以修改檔案(ro:read only)
docker run -it -v /宿主機絕對路徑目錄:/容器目錄:ro 映象名
DockerFile新增
vi Dockerfile
docker build -f /mydocker/Dockerfile -t wj/centos .
Dockerfile檔案內容:
FROM centos
VOLUME ["/dataContainer","/dataContainer2"]
CMD echo "success"
CMD /bin/bash
執行結果:
資料卷容器
命名的容器掛載資料卷,其他容器通過掛載這個(父容器)實現資料共享,掛載資料卷的容器,成為資料卷容器
命令:--volumes-from
docker run -it --volumes-from 父容器名 映象名
容器之間配置資訊的傳遞,資料卷的生命週期一直持續到沒有容器使用它為止。