【问题标题】:Nginx cannot access a Docker volume mountNginx 无法访问 Docker 卷挂载
【发布时间】:2020-03-15 13:20:29
【问题描述】:

我有一个 Docker Compose 设置来运行 Nginx 服务图片(jpg 文件)。端口、协议等不相关。我的 Nginx 工作正常并提供这些文件:

 web:
  image: myweb
  restart: always
  volumes:
 - ./logs/nginx:/var/log/nginx
  ports:
 ...

图片myweb继承自nginx并添加此服务器所需的所有配置,基本上,web根是:

  index index.html index.php;
  root /var/www/myweb/public;

我也在使用php:7.0-fpmfastcgi 位置,但这不是这里的问题。

我想要的是用图片挂载主机卷(而不是将它们复制到 docker 映像中),以便有可能在外部更新它(Dropbox 同步或其他)。

 web:
  image: myweb
  restart: always
  volumes:
 - ./webcode:/var/www
 - ./logs/nginx:/var/log/nginx
 - ./images-data/catalog-images:/var/www/myweb/public/catalog/images
  ports:
 ...

主机路径webcode(相对于docker-compose.yml位置)是静态网络,也安装在/var/www上。 主机路径images-data/catalog-images(相对于docker-compose.yml位置)是图片目录,挂载在/var/www/myweb/public/catalog/images上。

我不确定这是一个好习惯(将主机目录安装在已安装其他主机目录的同一路径上)。无论如何,我还尝试将webcode 作为myweb 图像的一部分,该图像只有一个已安装的卷(图片之一)。

安装webcode 并在其上添加图片,工作正常。并且没有任何卷挂载,仅包括所有内容(网站和图片)也可以使用。但我需要为图片准备一个独立的卷。 我还尝试在容器/var/www/myweb/public/catalog/images 中对图片卷进行符号链接。但是 Nginx 没有渲染它,可能是因为它的体积与 /var/www 不同。

应该属于rootnginx服务器配置吗?

问题是,这些图像没有加载到浏览器中。进入容器,我确认卷的所有权是正确的 (www-data:www-data)。

从容器的角度来看,如果我挂载卷或在容器文件系统中复制,所有权和内容是相同的。但是 Nginx 只能看到 Docker 容器文件系统内的文件。

这是正常行为吗?我是否缺少任何 Nginx 配置以正常使用容器内的主机卷?

【问题讨论】:

    标签: docker nginx docker-volume


    【解决方案1】:

    我想我终于解决了。 当我说

    我也在使用 php:7.0-fpm 和 fastcgi 位置 但它不是 问题在这里

    我完全错了:这是关键:php 执行。问题是图片是由index.php 加载的。然后它被发送到图片不可用的fpm 服务! 这是我对php 服务的docker-compose.yml 定义:

     fpm:
      image: php7fpm:latest
      restart: always
      volumes:
      - ./webcode:/var/www
    

    问题是图片量在那里不可见。我刚刚将这样的音量添加到fpm 音量列表,问题就解决了:

     fpm:
      image: php7fpm:latest
      restart: always
      volumes:
      - ./webcode:/var/www
      - ./images-data/catalog-images:/var/www/myweb/public/catalog/images
    

    很抱歉给您带来不便。

    【讨论】:

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