数据卷容器

来源:互联网 发布:linux怎么打开目录 编辑:程序博客网 时间:2024/04/28 11:57
当需要在多个容器间共享持久化数据,可以创建一个命名的数据卷容器, 并从该容器挂载数据。

创建数据卷容器
docker create -v /dbdata --name dbstore training/postgres /bin/true

检查数据卷挂载情况, 可见已经挂载dbdata
docker inspect -f "{{json .Mounts}}" dbstore

从容器db1, db2中使用--volumes-from来挂载上面的数据卷
docker run -d --volumes-from dbstore --name db1 training/postgres
docker run -d --volumes-from dbstore --name db2 training/postgres

检查db1,db2数据卷挂载情况:
docker inspect -f "{{json .Mounts}}" db1
docker inspect -f "{{json .Mounts}}" db2

删除卷容器
删除挂载数据卷的容器dbstore和通过该容器挂载的容器db1,db2并不自动删除数据卷。
方法是使用docker volume rm <volume_name>
docker volume rm 26d6e4a14d8dc41588ffa92d98806a75c2e4a7c24f58662aea049b7c2053262b

备份:
启动一个容器对dbstore中的卷进行备份
docker run --rm --volumes-from dbstore -v $(pwd):/tmp 6b6e66049cbf tar zcvf /tmp/dbdata.tar.gz /dbdata
把本地当前目录挂载到容器的/tmp, 然后对dbstore容器中的卷进行备份,备份文件保存在本地当前目录。
运行完毕容器退出并自动删除,仅剩下备份文件dbdata.tar.gz

恢复和迁移同理。

多个容器写一个共享数据卷会造成数据的破坏,需要考虑如何做好数据的保护。另外,从主机的文件系统也可以直接访问数据卷所对应的文件,
但如果在主机编辑和修改文件,可能造成数据的损坏。
阅读全文
0 0
原创粉丝点击