1. 程式人生 > 實用技巧 >Docker:容器資料卷

Docker:容器資料卷

背景

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 父容器名 映象名

容器之間配置資訊的傳遞,資料卷的生命週期一直持續到沒有容器使用它為止。