1
GuryYu 2019-02-04 19:16:29 +08:00 via iPad
nginx 镜像可以挂载 /etc/nginx/conf.d 目录,直接放 server 级别的配置就行了
|
2
wd 2019-02-04 19:18:38 +08:00 via iPhone
你换个思路 把宿主的 mount 给容器 等于你先把容器的 cp 出来 然后再 moubt 就可以编辑了
|
3
defunct9 2019-02-04 19:30:09 +08:00 via iPhone
开 ssh,让我上去看看
|
4
zuolan 2019-02-04 19:36:33 +08:00
起一个 tmp 容器, 然后把容器的文件 docker cp 到本地, 这样你就有一份配置文件了.
|
5
VECH OP |
6
eritpchy 2019-02-04 19:45:24 +08:00 via Android
反向思路 docker cp 是正解 出入都可以用他操作, 自己写个脚本即可
|
7
eritpchy 2019-02-04 19:47:52 +08:00 via Android
你觉得不行的原因是 /etc/nginx 挂载点被宿主给覆盖了, 假如你先挂载再安装 nginx 呢? 又假如你自己 diy 一个 nginx 镜像呢?
|
8
zhouzm 2019-02-04 23:56:14 +08:00
我是这样配置的:
-v ./nginx.conf:/etc/nginx/nginx.conf -v ./conf.d:/etc/nginx/conf.d |
9
yuikns 2019-02-05 00:00:40 +08:00 via iPhone
只有我没搞明白楼主意图么?
cp 出来然后在 override 自己,这是什么需求啊…… 如果只是想要拿出数据。docker cp 难度是什么? 如果是想要覆盖某个文件,那么 -v 也可以细化到具体文件。如果需要只增一个目录,那么可以写个 Dockerfile,然后 FROM nginx COPY nginx /etc/nginx |
10
xuanbg 2019-02-05 00:23:17 +08:00
楼主搞反了哈,不是把容器的文件夹映射到外面,而是把宿主机的文件夹映射给容器。你这个空的文件夹给容器作为配置文件,容器怎么能正常启动?
|
11
soyoker 2019-02-05 01:13:21 +08:00
学习的时候记得 docker 内部的文件会随着容器关闭而不保存的吧?
把宿主机的磁盘挂载就是方便即时修改容器实例的配置 为什么要把 docker 内部的文件映射到外面呢? |
12
keji 2019-02-05 01:34:38 +08:00 via Android
同 8 楼,是把宿主机的文件中挂载到容器中,出现错误可以使用 docker logs 容器 id,通过日志查看相应报错信息
|
13
yuikns 2019-02-05 02:49:39 +08:00 via iPhone 1
|
14
zhouzm 2019-02-05 09:18:04 +08:00 via Android 1
上面几位没仔细看贴,楼主知道 mount 怎么用,他的目的是想 docker 自定义配置目录时方便的得到 nginx 的 默认配置。
我看了一下 nginx 官方 docker 的帮助,推荐的做法就是使用 docker cp: $ docker run --name tmp-nginx-container -d nginx $ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf $ docker rm -f tmp-nginx-container 或者写个 Dockerfile,自己 build 一个镜像。 |