docker-compose 配置如下
version: "3"
services:
nginx:
image: nginx
ports:
- "80:80"
container_name: nginx
restart: always
privileged: true
volumes:
#1 - /data/nginx:/etc/nginx
#2 - /etc/nginx
用第一种方式,会报错 open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
用第二种方式就没问题
不知道为什么第一种方式,容器的文件没有同步到宿主机上,权限都有
本人刚学 Docker
1
noahsophie OP 目前我是照着这个教程学的:https://yeasy.gitbooks.io/docker_practice/content/
大佬们要是有好的学习地址,也可以发一下 |
2
kchum 2019-07-19 12:59:44 +08:00 via iPhone
你别挂载先 复制一份 nginx.conf 出来了放在要挂载的目录
|
3
kchum 2019-07-19 13:03:14 +08:00 via iPhone
/etc/nginx/的所有文件复制到 host 要挂载的目录
|
4
gam2046 2019-07-19 13:11:22 +08:00
因为你的宿主环境下 /data/nginx/nginx.conf 文件不存在呀,提示说的很清楚了。容器内这样提示,而容器内这个目录是由宿主 mount 进去的。
那么结果就是要么宿主挂载目录下没有这个文件,要么是宿主目录下存在这个文件,但是容器内的 nginx 没有权限读取。 |
5
noahsophie OP |
6
VD 2019-07-19 13:46:53 +08:00
|
7
VD 2019-07-19 13:48:11 +08:00
挂载是这样的
/host/path:/container/path 讲宿主机的目录或文件,挂载到容器中 |
8
noahsophie OP @VD 知道了~ 那么我上面第二种不指定目录方式绑定成功,是 docker 帮我把容器的文件复制到宿主机目录下了吗
|
9
VD 2019-07-19 14:20:13 +08:00
|
10
noahsophie OP |