gpt4 book ai didi

docker - docker-compose卷的行为

转载 作者:行者123 更新时间:2023-12-02 21:15:30 25 4
gpt4 key购买 nike

使用docker-compose,行为与卷不一致。

我使用的是nginx:1.15-alpine,如果我挂载/var/log/nginx,nginx可以轻松创建/var/log/nginx/error.log,但是如果我挂载/var/log,nginx无法创建/var/log/nginx/error.log

作品

webserver:
image: nginx:1.15-alpine
ports:
- '80:80'
volumes:
- /mnt/fs/webserver/nginx:/etc/nginx/conf.d
- /mnt/fs/webserver/log:/var/log/nginx

不起作用
webserver:
image: nginx:1.15-alpine
ports:
- '80:80'
volumes:
- /mnt/fs/webserver/nginx:/etc/nginx/conf.d
- /mnt/fs/webserver/log:/var/log

我知道不需要挂载不包含其他目录的目录,因为我可以成功将Wordpress容器中的 /var/www/html挂载到卷, /var/www/html包含子目录。

使用 不起作用配置时,nginx出现以下错误:

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (2: No such file or directory)



为什么挂载 /var/log/nginx有效,而挂载 /var/log不起作用?

最佳答案

如果您在主机上创建一个空目录并将其安装到容器上的/var/log,则容器中的/var/log将成为主机的空目录。如果您随后尝试写入/var/log/nginx/error.log,则没有任何东西创建中间nginx目录,并且您收到“没有这样的文件或目录”错误。

在启动容器之前,将卷直接安装到目标目录上,或者在主机目录中创建中间目录(具有适当的权限):

mkdir /mnt/fs/webserver/log/nginx
chmod 0777 /mnt/fs/webserver/log/nginx

关于docker - docker-compose卷的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com