1. 程式人生 > >Docker容器數據管理

Docker容器數據管理

Docker 數據卷

首先了解個概念:
什麽是數據卷(Data Volume):
數據卷是經過特殊設計的目錄,可以繞過聯合文件系統(UFS),為一個或多個容器提供訪問。
數據卷設計的目的,在於數據的永久化,它完全獨立與容器的生存周期,因此,Docker不會在容器刪除時刪除其掛載的數據卷,也不會存在類似的垃圾收集機制,對容器引用的數據卷進行處理。
技術分享圖片
數據卷(Data Volume)的特點:
數據卷在容器啟動時初始化,如果容器使用的鏡像在掛載點包含了數據,這些數據會拷貝到新初始化的數據卷中。
數據卷可以在容器之間共享和重用。
可以對數據卷裏的內容直接進行修改。
數據卷的變化不會影響鏡像的更新。
卷會一直存在,即使掛載數據卷的容器已經被刪除。

為容器添加數據卷:
$ docker run -v ~/container_data:/data -i -t centos /bin/bash

為數據卷添加訪問權限
$ docker run -v ~/datavolume: /data:ro -it centos /bin/bash

使用Dockerfile構建包含數據卷的鏡像
Dockerfile指令:
VOLUME [ "/data" ]

什麽是數據卷容器:
命令的容器掛載數據卷,其他容器通過掛載這個容器實現數據共享,掛載數據卷的容器,就叫做數據卷容器
技術分享圖片
掛載數據卷容器的方法
$ docker run --volumes-from [ CONTAINER NAME ]

技術分享圖片

數據備份方法
$docker run --volumes-from [ container name ] -v $(pwd):/backup centos tar cvf /backup/backup.tar [ container data vloume ]
技術分享圖片
技術分享圖片
數據還原方法
$ docker run --volumes-from [ container name ] -v $(pwd):/backup centos tar xvf /backup/backup.tar [ container data volume ]

Docker容器數據管理