我正在使用docker-compose开发nginx服务,我创建了docker-compose.yml文件:
version: '2'
services:
nginx:
image: nginx:1.11.8-alpine
ports:
- "8858:80"
volumes:
- ./site.conf:/etc/nginx/conf.d/default.conf
- ./code:/usr/share/nginx/html
- ./html:/myapp
- ./site.conf:/etc/nginx/conf.d/site.conf
- ./error.log:/var/log/nginx/error.log
- ./nginx.conf:/etc/nginx/nginx.conf:ro
这是 site.conf 文件
server {
listen 80;
index index.html index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
location / {
root /usr/share/nginx/html;
}
location /html {
alias /myapp;
}
}
这是 docker 撰写的结果
错误:对于ef5152b88a7c_ef5152b88a7c_nginxdocker_nginx_1无法启动 服务 nginx: OCI 运行时错误: container_linux.go:247: 启动 容器进程导致"process_linux.go:359:导致容器初始化 \"rootfs_linux.go:54: mount \\"/root/nginx-docker/nginx.conf\\" 到根 \\"/var/lib/docker/aufs/mnt/b463f0e0ca95db8cd570dfb68fcf206df31e86998e725465a7673ca192af8342\\" 在 \\"/var/lib/docker/aufs/mnt/b463f0e0ca95db8cd570dfb68fcf206df31e86998e725465a7673ca192af8342/etc/nginx/nginx.conf\\" 导致"不是目录"\"
:您是否正在尝试将目录挂载到文件上(反之亦然)? 检查指定的主机路径是否存在且是否为预期类型
Nginx无关。
如果在 docker-compose.yml
中使用 volumes
,请始终确保冒号左侧的文件:
存在!如果您错过了这一点,有时 Docker Compose 会创建文件夹而不是"左侧"(= 在您的主机上)IIRC 的文件。这会导致下次运行时出现后续错误。