【问题标题】:Docker: Cannot start service nginxDocker:无法启动服务 nginx
【发布时间】:2018-04-20 21:07:33
【问题描述】:

我正在使用 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-compose up

的结果

错误:对于 ef5152b88a7c_ef5152b88a7c_nginxdocker_nginx_1 无法启动 服务 nginx:oci 运行时错误:container_linux.go:247:正在启动 容器进程导致“process_linux.go:359:容器初始化导致 \"rootfs_linux.go:54: 挂载 \\"/root/nginx-docker/nginx.conf\\" 到 rootfs \\"/var/lib/docker/aufs/mnt/b463f0e0ca95db8cd570dfb68fcf206df31e86998e725465a7673ca192af8342\\" 在 \\"/var/lib/docker/aufs/mnt/b463f0e0ca95db8cd570dfb68fcf206df31e86998e725465a7673ca192af8342/etc/nginx/nginx.conf\\" 导致\\"不是目录\\"\""

:您是否尝试将目录挂载到文件上(反之亦然)? 检查指定的主机路径是否存在并且是预期的类型

【问题讨论】:

  • 您确定nginx.conf 存在于主机文件夹中吗?
  • 错误很明显是指运行 compose 命令的文件夹中不存在 nginx.conf
  • 感谢@Stefano 的回复,在我检查了 nginx.conf 的存在之后,它工作正常,但现在我面临着新的 nginx: [alert] could not打开错误日志文件:open() "/var/log/nginx/error.log" failed (21: Is a directory) and [emerg] 1#1: no "events" section in configuration

标签: docker nginx docker-compose dockerfile


【解决方案1】:

这与Nginx无关。

如果您在docker-compose.yml 中使用volumes,请始终确保冒号左侧的文件: 存在!如果您错过了这一点,有时 Docker Compose 会在“左侧”(=在您的主机上)IIRC 创建文件夹而不是文件。这会导致下一次运行时出现后续错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-22
    • 2018-01-13
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2022-01-22
    • 2016-04-29
    • 2018-12-16
    相关资源
    最近更新 更多