【问题标题】:Docker volumes_from does not work as expectedDocker volumes_from 无法按预期工作
【发布时间】:2019-02-27 17:30:00
【问题描述】:

大家好,我在 docker-compose 文件中的 volumes_from 中遇到问题。 - 我有 3 个服务,第一个有我的应用程序文件,第二个是 php-fpm,它从数据服务中获取容量。 我的文件是这样的。

version: '2'

services:
  cms_data:
    image: ""image from private repository contain application file"
    container_name: "cms-data"

  php-fpm:
    image: "image from private repository contain php configuration"
    container_name: "php-fpm"
    env_file:
      - ../.env.production
    volumes_from:
      - cms_data
    working_dir: /iprice/octobercms
    expose:
      - 9000
    depends_on:
      - cms_data
    restart: "always"

  nginx:
    image: "image from private repository contain nginx configuration"
    container_name: "nginx"
    ports:
      - "80:80"
      - "443:443"
    links:
      - php-fpm
    volumes_from:
      - cms_data
    depends_on:
      - cms_data
    restart: "always"

cms-data 图像包含正确的文件。 但是 php-fpm 容器没有帮助。

【问题讨论】:

  • 如何确定它没有文件?您是否尝试执行到正在运行的容器中并检查?
  • 是的,我做到了。我已经运行这个命令来检查数据图像docker run -it my-image sh
  • 还有这个命令来检查正在运行的容器docker exec -it php-fpm bash

标签: docker docker-compose dockerfile


【解决方案1】:

volumes_from 挂载存在于其他容器上的卷。它不会创建新卷。

cms-data 容器没有与之关联的任何卷。所以volumes_from 什么都做不了。如果您想共享cms-data 中的特定文件夹,请先创建一个链接该文件夹的卷。

注意:创建卷将用/path/on/host 文件夹覆盖内部容器的内容。所以先把container文件夹的内容复制到这个host文件夹下。

  1. 按原样运行当前的 docker-compose,以便容器启动。
  2. cms-data容器中的内容复制到主机文件夹:

    docker cp :/path/to/shared/文件夹/path/on/host

  3. 对 docker-compose 文件进行以下更改并重新启动。

    services:
      cms_data:
        image: ""image from private repository contain application file"
        container_name: "cms-data"
        volumes:
          - /path/on/host:/path/to/shared/folder
    
        ...
    

【讨论】:

  • 您好 Manish,感谢您的回答。但正如我提到的,这是预构建映像,它具有所有卷。而且我认为我们不需要将应用程序文件放到主机上。
  • 我只是将 yml 文件放在主机上,一旦我构建它,它将从 ECR 中提取图像
  • 启动容器后,docker volume ls.的输出是什么?和启动容器之前有什么不同吗?
  • 不一样
  • 是的。图像内部没有卷。卷只能在运行时定义。因此,如果您想将文件夹作为卷共享,则必须创建它。
猜你喜欢
  • 2020-03-03
  • 2013-12-23
  • 2014-12-09
  • 2016-01-13
  • 2020-09-21
  • 2011-08-17
  • 2012-04-29
  • 2021-08-12
  • 2019-02-04
相关资源
最近更新 更多