我正在尝试在我的 Docker 服务器上使用 nginx,但是在创建指向的卷时/etc/nginx
,nginx 无法启动并且该卷最终为空。
这是我的docker-compose.yml:
version: '3'
services:
nginx:
image: nginx:1.15-alpine
container_name: nginx-1
ports:
- "80:80"
- "443:443"
volumes:
- ./www:/var/www
- ./container/nginx/conf:/etc/nginx
运行时docker-compose up
...
nginx-1 | nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
nginx-1 exited with code 1
如果我- ./container/nginx/conf:/etc/nginx
从 docker-compose.yml 中删除,它可以正常启动,但使用默认配置。
这在和上都会nginx:1.15-alpine
发生nginx:latest
。
我做错了什么?提前感谢您的回答!
答案1
我设法找到了一种解决方法。
我运行了一个临时容器,并为该卷分配了一个不同的目录,然后将/etc/nginx
容器内的内容复制到该卷。
docker run -v ~/container/nginx/conf:/temp nginx:latest nginx-temp cp -r /etc/nginx /tmp
随后按 CTRL+C,卷现在有了正确的内容。这是一种麻烦的、可能远非最佳实践的解决方案,但它确实有效。