一.基本概念
数据卷:容器内数据直接映射到本地主机环境
数据卷容器:使用特定容器维护数据卷
二 .相关操作
1.数据卷
(1)在容器内创建一个数据卷
docker run -d -p --name 容器名(web) -v /目录(webapp) 镜像名(ubuntu)
使用ubuntu镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录下
(2)挂载一个主机目录作为数据卷
docker run -d -p --name web -v /src/webapp:/opt/webapp:ro ubuntu
加载主机的/src/webapp目录到容器的/opt/webapp目录
# 加了:ro之后,容器内挂载的数据卷的数据就无法修改。
(3)挂载一个本地主机文件作为数据卷(不推荐)
docker run --rm -it -v ~/.bash:history :/.bash_history ubuntu /bin/bash
2.数据卷容器
docker run -it -v /dbdata --name dndata ubuntu
创建一个数据卷容器dbdata,并创建数据卷挂载到/dbdata
docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db1 ubuntu
容器db1和db2都挂载同一个数据卷到相同的/dbdata目录,三个容器任何一方在该目录下写入,其他容器都可看到
3.利用数据卷容器来迁移数据
(1)备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
使用--volumes-from dbdata参数来让worker容器挂载dbdata容器的数据卷
使用-v $(pwd):/backup来挂载本地的当前目录到woker容器的/backup目录
使用tar cvf /backup/backup.tar /dbdata命令来将/dbdata下内容备份为容器内的/backup/backup.tar
(2)恢复
docker run -v /dbdata --name dbdata2 ubuntu /bin/back
docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf