容器间数据共享简图:
容器间数据共享,核心原理就是在宿主机开辟一块空间,被其他容器共享,实现容器间文件内容的共享,只需少量的改动,其他容器都会生效。
数据卷,即保存数据的单位
volume数据卷的设置有两种方式,下面会进一步表述。
通过 -v 挂载宿主机目录,格式:docker run --name 容器名 -v 宿主机路径:容器内挂载路径 镜像名
eg:docker run --name r1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat:8.5.46-jdk8-openjdk
ps:路径不能写错,区分大小写。缺点:有写错的风险
-v
挂载宿主机目录, 在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么。
step1: 把文件上传到宿主机服务器: /usr/webapps
step2:设置新的tomcat容器完成数据卷的挂载:
docker run --name t1 -p 8000:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat
step3: 验证:在浏览器输入
宿主机ip:8000/v-test1/index.html
--volumes-from
,其他容器指定此挂载点为方式一的改善:通过--volumes-from
共享容器内挂载点
docker create --name gzpoint1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat /bin/true
create :代表只创建不运行
/bin/true相当于一个占位符
docker run --name r1 -p 8001:8080 --volumes-from gzpoint1 -d tomcat
docker create -v:/usr/webapps:/usr/local/tomcat/webapps --name webapps tomcat /bin/true
docker run --name r2 -p 8008:8080 -d tomcat
在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么