数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步。
一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。
卷的概念不仅解决了数据持久化的问题,还解决了容器间共享数据的问题。
(1)数据卷可在容器之间共享或重用数据;
(2)数据卷中的更改不会包含在镜像的更新中;
(3)卷中的更改可以直接生效;
(4)数据卷的生命周期一直持续到没有容器使用它为止。
(1)容器数据持久化;
(2)外部机器和容器间接通信
(3)容器之间数据交换。
创建启动容器时,使用 -v 参数设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)
注意事项:
多个容器需要进行数据交换,我们已经知道可以通过挂载同一个数据卷的方式来实现,但是如果容器数量比较多的时候,挂载和恢复数据都比较麻烦,此时,可以通过配置容器数据卷来实现。
将一个容器作为与数据卷进行挂载,然后将其他的容器与该容器挂载,此时该容器就被称为数据卷容器。
语法:
容器数据卷:
docker run -itd --name container_name -p 宿主机端口号:容器端口号 -v /volume 镜像名称:镜像tag
其他容器:
docker run -itd --name container_name -p port:port --volumes-from 数据卷容器 镜像名称:镜像tag