为什么Docker容器无法在其他容器上看到体积?

时间:2020-03-08 17:57:12

标签: docker docker-compose dockerfile docker-volume

我有2个使用docker-compose up触发的容器。 我刚从docker hub nginx:stable中拉出的第一个 第二个是我在中心的php之上构建的

dockerfile

FROM composer:1.9.3
RUN mkdir /fatfree
RUN ["composer","require","bcosca/fatfree-core","--working-dir","/fatfree"]

FROM php:7.4-fpm
COPY --from=0 /fatfree /fatfree

我也尝试了上述文件中的VOLUME /fatfree无济于事。

docker-compose.yml

version: "3.7"

services:
  webserver:
    image: nginx:stable
    ports:
      - "80:8080"
    volumes:
      - ./www:/www
      - fatfree:/fatfree
    links:
      - php
  php:
    build:
      context: .
      dockerfile: dockerfile
    volumes:
      - ./www:/www
      - "fatfree:/fatfree"
volumes:
  fatfree:

如果我正确解释了docker文档,那么我的www/index.php应该可以看到/ fatfree中的内容,但是看不到。该文件夹本身会显示,但它显示为空。

如果我以交互方式docker container run -i -t test bash运行dockerfile,则/fatfree文件夹存在,并且包含了我期望的所有文件。

有很多stackoverflow问题问如何实现这一目标,它们似乎都暗示我在做什么实际上是可以的,但那是行不通的,我也不知道为什么。 任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

您的映射不正确。

您要

volumes:
- /fatfree:/www

第一个条目/fatfree指向主机上的路径。

第二个条目/www指向容器中的路径。

在我的示例中,主机的/fatfree目录(和内容)将映射到容器的/www目录。

根据需要进行更改。