docker-compose怎么把镜像里面的配置文件挂载到宿主机上?

发布于 2022-09-11 21:41:49 字数 352 浏览 25 评论 0

我想要把打包进docker的配置文件夹挂载出来到宿主机上,但是用docker-compose中的volumes属性,是把宿主机的文件夹交给docker镜像使用,如果宿主机文件夹为空,docker内的程序启动读取配置文件就失败了。

我的需求是:我已经把默认的配置文件夹打包进了docker里面了,在编辑docker-compose时想要指定将打包进docker的配置文件夹挂载出来给宿主机,这样后面配置文件要做修改的话,我直接就在宿主机打开配置文件修改了。

我目前知道volumes可以把宿主机的文件交给docker去使用,但是不知道怎么把docker的文件夹交给宿主机,麻烦知道的同学指导一下,感谢大家啦!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

萌酱 2022-09-18 21:41:49

在启动脚本, 从容器里的一个目录拷过去不就行了?

# entrypoint.sh
if  ![ -f /work/config.ini ] 
then
  cp /app/config.ini /work/config.ini
fi
萌面超妹 2022-09-18 21:41:49

本来数据卷就是从宿主机挂载到容器,你这把容器内挂在到宿主机是怎么个意思,你说你把默认的配置文件打包进docker了,默认的配置文件原来在哪?

梦冥 2022-09-18 21:41:49

楼主有答案了吗?我也有你这样的需求

拥抱没勇气 2022-09-18 21:41:49

没这功能

实在想从host改,可以docker inspect找到那个container的路径进去改

如果需要常改,考虑一下是不是真的应该用docker

冷夜 2022-09-18 21:41:49

启动容器的时候把 ssh 的端口映射出来,然后在宿主机上用 sshfs 可以把容器里的目录挂载出来。

不过 docker 镜像里可能并没有带 ssh 服务,需要自己安装和配置。

嘿嘿嘿 2022-09-18 21:41:49

打包docker镜像的时候,不要打包配置文件,配置文件采用挂载的方式让容器读取就好了

淡笑忘祈一世凡恋 2022-09-18 21:41:49

赞成“东方星痕”的观点,通过容器本身做配置的初始化。

当然docker-composer中照常可以通过volume方式,将配置目录从宿主机挂载只容器中,容器启动脚本,发现挂载进来的配置目录为空或文件不存在,就把默认容器中的配置覆盖过去就可以。后续也可以宿主机上直接编辑修改。

漫雪独思 2022-09-18 21:41:49

使用docker cp命令拷贝出来

命比纸薄 2022-09-18 21:41:49

运行临时镜像

docker run --rm -it image:latest /bin/sh
containerID:e127

另起一个终端拷贝文件 docker cp e127:/B/config.conf /host/confg.conf
关掉临时的 contannerID:e127 容器

正式启动 docker run -v /host/confg.conf:/B/config.conf image:latest

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文