【问题标题】:Docker unable to mount nginxDocker 无法挂载 nginx
【发布时间】:2018-04-18 01:46:00
【问题描述】:

我在使用 Docker 工具箱首次在 Windows 上设置 Docker 时遇到问题。目前除了 nginx 一切正常。

错误信息:

ERROR: for web  Cannot start service web: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\\"/c/wamp64/www/cathaypacific_career/ops/nginx/default.conf\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/aufs/mnt/ff9b27a89b26b0e9091264d04d3a475f18469db3cf3be473c005e2d4c7d4b5ef\\\" at \\\"/mnt/sda1/var/lib/docker/aufs/mnt/ff9b27a89b26b0e9091264d04d3a475f18469db3cf3be473c005e2d4c7d4b5ef/etc/nginx/conf.d/default.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.

Docker-compose 配置:

version: '3'

services:
  web:
    container_name: web
    image: nginx:1.13.3-alpine
    networks:
      - web_tier
    ports:
      - 80:80
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ../:/code
      - /code/ops/
    depends_on:
      - app
  app:
    container_name: app
    build: ./php/
    networks:
      - web_tier
      - app_tier
    expose:
      - '9000'
    volumes:
      - ./php/settings.conf:/usr/local/etc/php-fpm.d/settings.conf
      - ../:/code
      - /code/ops/
    working_dir: /code
    entrypoint: "/bin/sh -c"
    command:
      - "php-fpm"
    env_file: ../.env
    depends_on:
      - db
  db:
    container_name: db
    image: mysql:5.6.39
    networks:
      - app_tier
      - db_tier
    expose:
      - '3306'
    ports:
      - 3306:3306
    volumes:
       - db_data:/var/lib/mysql
       - ./db:/etc/mysql/conf.d
    restart: always
    env_file: ../.env
networks:
  web_tier:
    driver: bridge
  app_tier:
    driver: bridge
  db_tier:
    driver: bridge

volumes:
  db_data:

该问题似乎与 Nginx 有关,无法访问 default.conf 或应用程序认为它是文件夹而不是文件。 我在网上查了问题,有人建议挂载 C: 文件夹,所以我尝试在 Oracle VirtualBox 上挂载它并重新运行docker-compose up 命令,但没有解决问题。

有什么想法吗?

【问题讨论】:

  • 能否提供defalut.conf
  • 太长了——但基本上只是一个 nginx 配置(监听端口 80,代码的根...) server { listen 80 default_server;听 [::]:80 默认服务器;索引 index.php 索引.html;错误日志/var/log/nginx/error.log; access_log /var/log/nginx/access.log;根 /code/public;
  • 我在 Windows 上遇到了与 nginx:alpine 相同的问题。奇怪的是它昨天晚上运行良好,当我今天早上尝试重新启动它时,开始出现错误。

标签: docker nginx docker-toolbox


【解决方案1】:

我解决了与Oracle VirtualBox VM default共享文件夹的相同问题

共享您的项目文件夹并重新启动您的虚拟机。

你甚至可以使用类似的命令 docker-machine stop default & docker-machine stop default

现在,您需要在撰写文件中使用共享名称(项目)而不是 . (docker-compose.yml)

对于你的情况,

- ./nginx/default.conf:/etc/nginx/conf.d/default.conf

应该改为

- /sharename/nginx/default.conf:/etc/nginx/conf.d/default.conf

现在试试docker-compose up

它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2019-04-10
    • 2020-07-05
    • 2017-09-19
    • 2018-11-07
    • 1970-01-01
    相关资源
    最近更新 更多