5-Docker 容器的資料管理
阿新 • • 發佈:2022-05-24
1 )Docker 容器的資料卷
什麼是資料卷? 資料卷是經過特殊設計的目錄,可以繞過聯合檔案系統(UFS),為一個或者多個容器提供訪問,資料卷 設計的目的,在於資料的永久儲存,它完全獨立於容器的生存週期,因此,docker 不會在容器刪除時刪 除其掛載的資料卷,也不會存在類似的垃圾收集機制,對容器引用的資料捲進行處理,同一個資料卷可 以只支援多個容器的訪問。 資料卷的特點: 1.資料卷在容器啟動時初始化,如果容器使用的映象在掛載點包含了資料,這些資料會被拷貝到新初始化的資料卷中 2.資料卷可以在容器之間共享和重用 3.可以對資料卷裡的內容直接進行修改 4.資料卷的變化不會影像映象的更新 5.卷會一直存在,即使掛載資料卷的容器已經被刪除資料卷的使用
1.為容器新增資料卷 docker run -v /datavolume:/data -it centos /bin/bash docker run --name volume -v ~/datavolume:/data -itd centos /bin/bash 注:~/datavolume 為宿主機目錄,/data 為 docker 啟動的 volume 容器的裡的目錄 這樣在宿主機的/datavolume 目錄下建立的資料就會同步到容器的/data 目錄下 為資料卷新增訪問許可權 docker run --name volume1 -v ~/datavolume1:/data:ro -itd centos /bin/bash 新增只讀許可權之後在 docker 容器的/data 目錄下就不能在建立檔案了,為只讀許可權;在宿主機下的/datavolume1 下可以建立東西 2.使用 dockerfile 構建包含資料卷的映象 FROM centos VOLUME ["/datavolume3","/datavolume6"] CMD /bin/bash 使用如下構建映象 docker build -t="volume" . 啟動容器 docker run --name volume-dubble -it volume 會看到這個容器下有兩個目錄,/datavolume3 和/datavolume6
2) Docker 的資料卷容器
什麼是資料卷容器:命名的容器掛載資料卷,其他容器通過掛載這個容器實現資料共享,掛載資料卷的容器,就叫做資料卷容器docker run --name data-volume -itd volume (volume 這個映象是上面建立的帶兩個資料卷/datavolume3 和/ddatavolume6 的映象) #在容器建立一個檔案 docker exec -it data-volume /bin/bash(進入到容器中) touch /datavolume6/lucky.txt 退出容器 exit #建立一個新容器掛載剛才 data-volume 這個容器建立的資料卷 docker run --name data-volume2 --volumes-from data-volume -itd centos /bin/bash #進入到新建立的容器 docker exec -it data-volume2 /bin/bash #檢視容器的/datavolume6 目錄下是否新建立了 lucky.txt 檔案 cd /datavolume6 可以看見有剛才在上一個容器建立的檔案 lucky.txt
3)