docker作为主机上的分割的部分,对数据的共享提出来要求。
这里有两种基本的方式:挂载主机共享目录 使用其他容器的数据卷
1、挂载共享目录
这里类似于mount 只需要在创建容器的时候,用-v选项指定主机的共享目录和容器的挂载点
docker run -it --name test03 -v /data:/data:ro 05c259583efe /bin/bash :ro指定只读
可用多个-v选项挂载多个目录
2、数据卷容器
docker run -it --name data -v /data 05c259583efe /bin/bash -v指定共享目录 可额共享多个不能直接共享 创建数据卷容器
docker run -it --name test04 --volumes-from data 05c259583efe /bin/bash --volumes-from 指定共享的容器(数据卷容器)
还可以使用多个 --volumes-from 参数来从多个容器挂载多个数据卷。 也可以从其他已经挂载了数据卷的容器来挂载数据卷
*注意:使用 --volumes-from 参数所挂载数据卷的容器自己并不需要保持在运行状态。
如果删除了挂载的容器(包括 dbdata、db1 和 db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。 这可以让用户在容器之间升级和移动数据卷。
3、直接拷贝文件
从Docker容器内拷贝文件到主机上
docker cp <containerId>:/file/path/within/container /host/path/target
主机上拷贝到docker内
A. 获取容器名称或者id :
$ docker ps
B. 获取整个容器的id
$ docker inspect -f '``.`Id`' 步骤A获取的名称或者id
C. 在主机上拷贝文件:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
或者直接扔到共享目录中
本文转自 憬薇 51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1696142