目录
一、数据卷
二、数据卷容器
三、容器互联
容器中管理数据主要有两种方式:
- 数据卷(Data Volumes)
- 数据卷容器(Data Volume Dontainers)
一、数据卷
数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。
注:想要将容器中的数据持久化,可以将宿主机目录挂载到容器中。
一般只建议在创建容器时进行挂载,不建议启动容器后再挂载。因为启动容器后再挂载的话,需要修改配置文件,且不一定能挂载成功。
docker run -v 数据卷 #在容器内创建数据卷
docker run -v 宿主机目录:数据卷 #将宿主机目录挂载到容器中
docker run -v 宿主机目录:数据卷:ro #将宿主机目录挂载到容器中,只可读
二、数据卷容器
如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。
docker run --name sz2 -v /data1 -v /data2 -itd centos:7
#创建数据卷容器sz2。创建/data1和/data2两个数据卷
docker run -itd --volumes-from sz2 --name sz3 centos:7
#使用--volumes-from 来挂载sz2容器中的数据卷到新的容器sz3
注:
一般只建议在创建容器时进行挂载,不建议启动容器后再挂载。
因为启动容器后再挂载的话,需要修改配置文件,且不一定能挂载成功。
三、容器互联
容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之问建立一条隧道,接收容器可以看到源容器指定的信息。
docker run -itd -P --name ss1 centos:7 /bin/bash
#创建并运行源容器取名ss1
docker run -itd -P --name ss2 --link ss1:s1 centos:7 /bin/bash
#创建并运行接收容器取名ss2,使用--1ink选项指定连接容器ss1以实现容器互联
注:如果不做互联的话只能通过IP进行通信