数据卷
使用Docker过程中,需要对数据进行持久化,或在多个容器间共享数据,需要容器的数据管理操作
- 数据管理主要有两种方式:
- 数据卷(Data Volumes):容器数据直接映射到本地主机环境
- 数据卷容器(Data Volume Containers):使用特定容器维护数据卷
数据卷
1 2 3 4 5
|
$ docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py
|
数据卷容器
创建数据卷容器dbdata,创建数据卷挂载到容器dbdata
1
| $ docker run -it -v /dbdata --name dbdata ubuntu
|
其他容器对其进行挂载,之后三方任何一方修改各方都可见
1 2
| $ docker run -it --volumes-from dbdata --name db1 ubuntu $ docker run -it --volumes-from dbdata --name db2 ubuntu
|
删除最后挂载容器需要使用docker rm -v
同时删除关联容器
使用数据卷容器迁移数据
备份
1
| $ docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
|
恢复
首先创建容器dbdata2
1
| $ docker run -v /dbupdate --name dbdata2 ubuntu ubuntu /bin/bash
|
新容器挂载dbdata2,然后untar解压备份文件到所挂载的容器卷中
1
| $ docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
|
端口映射和容器互联
端口映射
容器互联
创建新容器
1
| $ docker run -d --name db training/postgres
|
创建新容器连接到db容器
1 2
| $ docker run -d -P --name web --link db:db traning/webapp
|