Docker数据卷用三种方法帮你分析volume

Docker数据卷用三种方法帮你分析volume,第1张

Docker数据卷用三种方法帮你分析volume

平常我们搭建容器最重要的是文件管理的保护和使用,一般正常的是用-v映射容器中的文件夹到本地,这样我们可以直接在主机编写文件,没必要再进入容器进行修改

一、单个容器数据卷映射

举例:新建一个容器可以映射本地/data/nginx/conf.d到容器中/etc/nginx/conf.d

docker run -d -it -v /data/nginx/conf.d:/etc/nginx/conf.d -p 80:80 --name=nginx nginx /bin/bash

 这样可以通过编写本机/data/nginx/conf.d/*.conf实现nginx的使用

二、多个容器共同访问数据卷实现数据的实时同步

1、创建nginx01

docker run -d -it -v nginx:/etc/nginx/conf.d -p 81:80 --name=nginx01 nginx /bin/bash

这里的-v nginx:/etc/nginx/conf.d这里的nginx是一个volum卷标名称(nginx前面没有任何路径标识),也可以像上面一样指定一个本地路径,这里单独的nginx用来更好讲解volume数据卷标

用docker volume ls可以查看系统的所有volume卷标

docker volume inspect nginx用来查看详细的nginx卷标信息及主机路径

这样可以通过编写本机"/var/lib/docker/volumes/nginx/_data/*.conf实现nginx的使用

2、创建nginx02容器,挂载mysql01容器中的数据卷
 docker run -d -it -p 82:80 --name=nginx02 --volumes-from=nginx01 nginx /bin/bash

可以使用inspect命令来查看nginx02的卷标挂载位置可以看到和nginx01一样

docker inspect nginx02

3、这样我们进入/var/lib/docker/volumes/nginx/_data,创建一个song.conf可以同时同步到nginx01和nginx02

可以看到不管是nginx01,nginx02还是主机更新的文件都可以在容器中更新

三、写一个简单的Dockerfile来时间卷标管理 

1、编写一个简单的Dockerfile文件

vim Dockerfile (构建指令可以参考博客dockers章节 )

FROM nginx
MAINTAINER usersong
VOLUME ["/etc/nginx/conf.d"]
CMD echo "----end---"
CMD /bin/bash

2、运行Dockerfile文件

通过docker build -f Dockerfile -t nginx:v1 .来运行dockerfile,-t指定镜像名称和版本,记得后面有一个"." dockerfile构建过程就是上面写的4部

这个就是我们用dockerfile自己创建的一个容器nginx:v1

 3、开始用编写的镜像创建容器,并查看容器的mounts信息,这样可以实现提前构建好volume卷标信息

docker run -d -it -p 81:80 --name=nginx01 nginx:v1 /bin/bash 

docker run -d -it -p 82:80 --name=nginx02 nginx:v1 /bin/bash

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5714609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存