Docker数据管理
数据卷(容器与宿主机之间数据共享)
- 数据卷是一个供容器使用的特殊目录,位于容器中。
- 可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。
- 数据卷的使用类似于Linux下对目录进行的mount操作。
docker run -itd --name test01 -v /opt/test01:/test01 centos:7
#宿主机目录/opt/test挂载到容器中的/test。
#注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。
#-v :选项可以在容器内创建数据卷
docker run -itd --name test02 -v /opt/test01:/test02 centos:7
##通过数据卷实现容器与容器之间的数据共享
##/opt/test :是test01容器数据卷挂载到宿主机的目录
###默认情况下数据卷是可读可写的
docker run -itd --name test03 -v /opt/test02:/test03:ro centos:7
##实现挂载的数据卷的只读操作
数据卷容器(容器与容器之间数据共享)
- 有时时候,容器之间共享一些数据,最简单的方法就是使用数据卷容器。
- 数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用
#创建数据卷容器test04。创建/data01和/data02两个数据卷。
docker run -itd --name test04 -v /data01 -v /data02 centos:7
##进入test04容器
docker exec -it test04 bash
##使用--volumes-from 来挂载test04容器中的数据卷到新的容器test05
docker run -itd --volumes-from test04 --name test05 centos:7
docker exec -it test05 bash
#进入test05容器
容器互联
- 容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。
- 简单点说,就是会在源容器和接收容器之问建立一条隧道,接收容器可以看到源容器指定的信息。
##创建并运行源容器
docker run -itd --name test01 centos:7
##创建接收容器
##使用 --link 选项指定连接容器test01
docker run -itd --name test02 --link test01:ggl centos:7
--link :目标容器名:连接别名(随意设置)
###进入容器测试
docker exec -it test02 bash
ping test01
ping ggl