数据卷概念

容器数据卷是为了实现容器的持久化和同步操作,它完全独立于容器的生命周期,容器间也可以实现数据共享的 (多个容器可以共享一个地方的数据),因此,Docker 不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾回收机制,对容器引用的数据卷进行处理

容器数据卷技术保障容器被删除后,数据不丢失

数据卷特性

  1. 数据卷可以在容器之间共享
  2. 宿主机对容器数据卷双向绑定
  3. 宿主机可以对数据卷里的内容直接修改
  4. 卷会一直存在,及时挂载数据卷的容器已经被删除
  5. 数据卷支持多重挂载

数据卷应用场景

通过命令行挂载数据卷

docker run -d -p 8080:8080 --name tomcat -v /usr/local/tomcat/webapps tomcat

参数解析:
-d 后台启动
-p 端口映射
--name 容器名称
-v 数据卷挂载,/usr/local/tomcat/webapps 为容器内路径

挂载后通过 docker volume ls 可查看所有的数据卷
通过 docker inspect 容器 id 也可查看容器 mount 的数据卷
注:volume name 是随机生成的字符串

docker run -d -p 8080:8080 --name tomcat -v volumeName:/usr/local/tomcat/webapps tomcat

挂载后通过 docker volume ls 可看到 volumeName 名称的数据卷

docker run -d -p 8080:8080 --name tomcat -v /root/webapps:/usr/local/tomcat/webapps tomcat

支持多重挂载,如/root/webapps 已挂载到 tomcat 容器,同样 它也可以继续挂载到别的容器

docker run -d -p 8081:8080 --name tomcat1 -v /root/webapps:/usr/local/tomcat/webapps tomcat

挂载模式:
ro:readonly,容器中被挂载的目录在容器中只能进行读
rw:readwrite(默认),容器中被挂载的目录在容器中可读可写

docker run -d -p 8080:8080 --name tomcat -v /root/webapps:/usr/local/tomcat/webapps:ro tomcat

end~~~


↙↙↙阅读原文可查看相关链接,并与作者交流