码迷,mamicode.com
首页 > 其他好文 > 详细

docker学习总结六

时间:2018-12-08 17:07:48      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:标记   python   host   使用   历史   cer   ack   参数   记录   

数据管理
数据卷:容器内数据直接映射到主机环境
数据卷容器: 使用特定容器维护数据卷
数据卷
1. 创建数据卷
使用docker run,用-v标记可以在容器内创建一个数据卷。多次重复使用-v标记可以在容器内创建多个数据卷
下面使用lxc/webapp镜像创建一个容器,并创建一个数据卷挂载到容器的webapp目录,并运行app.py程序:
$ docker run -d -P --name web -v /webapp lxc/webapp python app.py
2. 挂载主机目录作为数据卷(推荐)
$ docker run -d -P --name web -v /src/webapp:/opt/webapp lxc/webapp python app.py
dokcer挂载数据卷的默认权限是读写(rw),用户也可以通过ro指定为只读:
$ docker run -d -P --name web -v /src/webapp:/opt/webapp:ro lxc/webapp python app.py
3. 挂载本地主机文件作为数据卷(不推荐)
$ docker run --rm -it -v ~/.bash_hostory:/.bash_history ubuntu /bin/bash
这样可以记录在容器中输入过的命令历史了

数据卷容器
4. 创建数据容器并在其中创建一个数据卷挂载到 /dbdata
$ docker run -it -v /dbdata --name dbdata ubuntu
5. 使用--volumes-from挂载 数据卷容器中的数据卷
$ docker run -it --volumes-from dbdata --name db1 ubuntu
$ docker run -it --volumes-from dbdata --name db2 ubuntu
此时,db1和db2都挂载了同一个数据卷到相同的/dbdata目录。三个容器任何一方在该目录下写入,其他容器都可见。
也可以从已经挂载了容器卷的容器来挂载数据卷。
$ docker run -d --name db3 --volumes-from db1 ubuntu
使用--volumes-from 参数所挂载数据卷的容器自身并不需要保持运行状态。
注意:删除挂载了数据卷的容器并不能删除数据卷,可以再删除最后一个还挂载这数据卷的容器时使用命令docker rm -v 容器ID
利用数据卷容器迁移数据

6. 备份
$ docker run --volumes-from dbdata -v $(pwd) :/backup --name worker ubuntu tar cvf /backup/backup.tar /dbdata
这条命令的意思是利用ubuntu镜像创建一个容器并命名worker,并且从dbdata容器挂载数据卷,-v 把容器的/backup目录挂载到宿主机当前目录,在容器运行后把 /backup下的backup.tar 解压到/dbdata目录下
7. 恢复
将数据恢复到另一个容器
$ docker run -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar

docker学习总结六

标签:标记   python   host   使用   历史   cer   ack   参数   记录   

原文地址:http://blog.51cto.com/13670314/2327906

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!