【问题标题】:Cannot mount file as a volume in docker-compose after weekends, why?周末后无法在 docker-compose 中将文件挂载为卷,为什么?
【发布时间】:2019-03-04 14:58:11
【问题描述】:

今天我的 docker 环境出现了新错误。 我刚刚启动了我的项目(Web、Php 和 Postgres 容器),但 Nginx 容器没有启动,因为我使用卷挂载的 site.conf 是一个“目录”。

上周五还好,对我来说效果很好。在这种情况下,我不会改变任何东西。 ;(

我创建了额外的 docker-compose 文件,您可以在其中尝试重现我的错误。

docker-compose 文件:

version: "3"

services:
  nginx:
    container_name: nginxCr
    image: nginx:1.15.7
    ports:
      - "80:80"
    volumes:
      - .:/var/www
      - ./site.conf:/etc/nginx/conf.d/site.conf

site.conf 可以为空以进行测试。

docker-compose up -d 之后 容器未运行。

docker logs nginxCr 提供以下功能:

2019/03/04 14:49:25 [crit] 1#1: pread() "/etc/nginx/conf.d/site.conf" 失败(21:是一个目录) nginx: [crit] pread() “/etc/nginx/conf.d/site.conf”失败(21:是目录)

以某种方式启动 docker(docker compose)来创建目录而不是链接我的配置文件。

我有 Windows 10 专业版(内部版本 17134)

Docker 版本 18.09.2,内部版本 6247962

docker-compose 版本 1.23.2,构建 1110ad01

更新: 问题似乎仅限于 Windows...在我的 Nix-Server 上运行良好

【问题讨论】:

  • 更新 2:我在星期五之后获得了 3 个 Windows Defender 的“定义”更新

标签: windows docker docker-compose


【解决方案1】:

解决方案是uncheck -> apply

然后

check -> apply Docker 设置中“共享驱动程序”中的硬盘

*掌心*

【讨论】:

    【解决方案2】:

    将您的 www 文件保存在单独的文件夹中,而不是 . 中。有一个如下的撰写文件:

    services:
      nginx:
        container_name: nginxCr
        image: nginx:1.15.7
        ports:
          - "80:80"
        volumes:
          - ./www:/var/www
          - ./site.conf:/etc/nginx/conf.d/site.conf
    

    因此,在您的当前工作目录中,您应该有一个名为www 的文件夹(这样您就不必合并卷)和一个名为site.conf 的文件。即使它是一个空文件,您也应该将它放在您的目录中。否则,docker 将以该名称创建一个文件夹。

    如果您有一个名为site.conf 的文件夹,请删除该文件夹并执行touch site.conf,然后执行docker-compose up -d

    【讨论】:

    • 不,这不是一个解决方案;( 2019/03/04 15:20:31 [crit] 1#1: pread() "/etc/nginx/conf.d/site.conf" failed (21: Is a directory) nginx: [crit] pread() "/etc/nginx/conf.d/site.conf" failed (21: Is a directory)
    • 我的意思是,我当然可以创建一个 docker 文件,它可以进行触摸、链接和其他操作,它可以/将是一个解决方案,有些方法......我的第一个问题是 - 为什么它不工作, 第二 - 星期五它工作,今天不行,为什么?!
    • 您在 dockerfile 中提供的任何内容都将反映在您创建的映像上,但是当您进行卷挂载时,您正在创建主机和容器之间的连接。所以你需要在你的主机中有一个文件(如果你正在挂载一个文件)。否则,您可以挂载整个文件夹
    • 能否发布您当前的文件夹结构,然后我们可以分析您遇到问题的原因
    • ProjectFolder/docker-compose.yml,ProjectFolder/site.conf,以及新建的ProjectFolder/www
    猜你喜欢
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2019-04-13
    • 2021-05-08
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    相关资源
    最近更新 更多