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


或者直接扔到共享目录中