1. 程式人生 > 其它 >5-Docker 容器的資料管理

5-Docker 容器的資料管理

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)