一篇文章带你学会如何使用 docker 实现主机和容器的目录挂载

当我们创建容器之后,不可避免会遇到修改配置文件的操作,但是直接在容器中操作需要安装 vim,不方便,也不建议这样操作。

所以这时就可以利用 docker 的目录挂载功能,将容器中需要修改配置文件的目录挂载到主机中,这样通过修改主机上的配置文件达到修改容器中配置文件的目的

一、创建容器时挂载目录文件

在我们刚创建容器时,为了以后修改容器文件的方便就可以直接建一个目录,实现和容器的目录挂载:

docker run -di -v /usr/local/yolo/nginx:/usr/local/yolo/nginx --name=nginx_yolo nginx:latest

在这里插入图片描述

比如我这里将 主机上的/usr/local/yolo/nginx目录和创建的nginx容器的对应目录挂载,这两个目录没必要自己创建,建立时会自动创建。

以后操作容器内的什么文件,就可以直接在主机的/usr/local/yolo/nginx目录下操作,对应的文件就会生成到容器的该目录下,然后再将容器的对应文件复制到你需要的地方即可。

比如这里,我想要修改 nginx 容器中default.conf 配置文件:

(1)在主机的/usr/local/yolo/nginx目录下,编辑好default.conf文件:

这步可以直接在该目录下创建修改文件,也可以通过Xftp直接本机编辑然后传到该目录下:

在这里插入图片描述

(2)进入容器内该目录下,看看是否存在修改的文件:

在这里插入图片描述

目录挂载成功,文件修改好之后,复制到容器需要的位置即可。

(3)这里以修改 nginx 端口为例,将修改后的文件替换原来的文件

进入 nginx 容器 中 default.conf 的目录下,查看具体的文件路径:
在这里插入图片描述
得到 default.conf 配置文件在容器的路径为:/etc/nginx/conf.d/

在这里插入图片描述
查看 是否是修改后的文件:

在这里插入图片描述
OK,至此修改成功,其实这类似 主机和容器的文件拷贝操作

二、通过数据卷实现docker 目录挂载

数据卷:其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息

首先创建一个普通容器:实现主机和容器对应目录的挂载

docker run -v /usr/local/yolo/:/usr/local/yolo/ --name dataVol centos:7 /bin/bash

在这里插入图片描述

然后创建一个新容器使用这个数据卷,也就是完成目录的映射,这里注意不用必须建立和数据卷一样的容器,它只是起一个目录映射的作用,方便多次使用

docker run -it --volumes-from dataVol --name=nginx1 nginx /bin/bash

--volumes-from 表示指定从哪个数据卷来挂载数据

此时在主机的对应目录添加一个文件:

在这里插入图片描述

去容器的对应目录查看:

在这里插入图片描述

三、总结

目录挂载,相对于直接在容器内编辑文件,方便管理,可以借助数据卷,实现固定的目录映射,方便整理和修改。

如果不需要存储配置文件,就是使用或者编辑一次的话,使用 cp 命令将主机上修改好的文件直接复制到相应容器的目录内会更加简单:docker cp 需要拷贝的文件或目录 容器名称:容器目录

在这里插入图片描述
也可以将文件从容器内拷贝出来:docker cp 容器名称:容器目录 需要拷贝的文件或目录

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值