原文地址:https://docs.docker.com/userguide/dockervolumes/
创建并挂载一个数据磁盘容器
如果你有一些需要长久保存的数据在多个容器之间共享,或者想要使用不是长久使用的容器中的数据,我们最好是创建一个数据磁盘容器,然后我们挂载这个容器即可
让我们现在创建一个带共享磁盘的容器,因为这个容器不存在任何应用,我们复用一下training/postgres ,这样的话还能节省点空间
docker create -v /dbdata –name dbdata training/postgres /bin/true
我们也可以使用 –voluemes-from 来挂载/dbdata到别的容器中
docker run -d –volumes-from dbdata –name db1 training/postgres
docker run -d –volumes-from dbdata –name db2 training/postgres
在这个例子中,如果镜像training/postgres 包含了/dbdata,那么挂载的是dbdata容器中的卷组,并且隐藏/dbdata中的文件,结果是只有容器dbdata中的文件是可见的
我们可以使用–voluems-from来挂载多个卷组
我们也可以挂载db1 或者db2,因为db1和db2的卷组都来自dbdata
docker run -d –name db3 –volumes-from db1 training/postgres
如果我们删除了容器,包括最初的dbdata容器,卷组也不会被删除,若果想从本地物理磁盘上删除数据,我们需要docker rm -v 最后一个引用这个磁盘的容器,这样我们就可以更新,或者迁移数据了
备份,转存,迁移 数据卷组
另外一个非常有用的功能是我们可以用来备份,转存,或者迁移,我们使用命令–volumes-from 来创建一个新的容器
docker run –volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
这里我们加载一个新的容器,并且挂载了dbdata这个数据容器,我们还把当前目录挂载到容器的/backup目录,然后我们使用了tar命令吧dbdata命令给备份了,这个时候,我们就可以转存,我们可以在别的地方创建一个新的容器
docker run -v /dbdata –name dbdata2 ubuntu /bin/bash
然后,重新解压即可
docker run –volumes-from dbdata2 -v $(pwd):/backup ubuntu cd /dbdata && tar xvf /backup/backup.tar
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021