目录
一、创建数据卷容器
方法一(数据卷/dbdata)
docker run -it -v /dbdata --name dbstore ubuntu /bin/bash
方法二(容器不运行)
docker create -v /dbdata --name dbstore ubuntu /bin/bash
方法三(映射本地文件)
docker run -it -v $(pwd):/dbdata --name dbstore ubuntu /bin/bash
方法四(推荐)
创建数据卷dbdata
docker volume create --name dbdata
创建数据卷容器
docker run -it -v dbdata:/dbdata --name dbstore ubuntu /bin/bash
删除
docker volume rm dbstore
查看
docker volume ls
二、挂载数据卷容器
将上面创建的dbstore容器挂载到新容器dbstore2上面
docker run -it --volumes-from dbstore --name dbstore2 ubuntu /bin/bash
注意: 删除容器不会删除数据卷,但是。。如果删除了数据卷容器后,要找到无主的数据卷就稍有点麻烦了。
通过下面命令找回数据卷
docker volume ls #列出全部数据卷
docker run -it -v xxxx:/dbdata --name dbstore ubuntu /bin/bash #创建数据卷容器
三、备份数据卷中的内容
备份数据卷容器dbstore中的数据卷/dbdata内容。
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
- 启动一个临时容器,挂载
dbstore容器的数据卷。 - 将当前目录挂载到这个临时容器的
/backup目录 - 最后将dbstore容器中的数据卷
/dbdata备份到/backup(即当前目录)
四、复制文件到数据卷
将宿主机的文件复制到数据卷(/dbdata)中
首先新建一个数据卷(数据卷在卷容器dbstore中)
$ docker run -itd -v /dbdata --name dbstore ubuntu /bin/bash
然后新建一个临时容器,挂载刚才创建的数据卷容器(dbstore) 接着将当前目录映射为这个临时容器的/backup目录最后,将当前目录下的backup.tar解压到数据卷(/dbdata)中
$ docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xvf /backup/backup.tar --strip 1
五、数据卷插件
所有可用插件:https://docs.docker.com/engine/extend/plugins/
其他:略
参考文档: