【问题标题】:docker-compose volumes_from usage exampledocker-compose volumes_from 使用示例
【发布时间】:2018-01-11 16:20:12
【问题描述】:

您能否提供一个使用volumes_from从容器A到容器B共享路径的示例,以及容器B在共享完成后如何访问该路径。

谢谢

【问题讨论】:

  • 你的 Docker 版本是多少?

标签: docker docker-compose


【解决方案1】:

正如文档所说 volumes 如果您在 version 3 中,您可以使用 The top-level volumes 将命名卷定义为下面的 db-data ee 代码,您可以在每个服务中引用它,如下所示:

version: "3"

services:

  web:
    nginx:alpine
    ports:
    - "80:80"

  postgres:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/db

  backup:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/backup/data

  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data

volumes:
  db-data:

2.0 版:

volumes_from 允许您从另一个服务或容器挂载所有数据或卷,您必须指定访问级别,文档如何在您的代码中说 volumes from 您可以使用如下内容:

version: "2"

services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes_from:
      - redis:rw
  postgres:
    image: postgres:9.4
    volumes:
      - /data/webapp
  backup:
    image: postgres:9.4
    volumes:
      - /var/lib/backup/data

  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - /data/db

要在redis 上面的代码定义一个卷服务,然后您可以在另一个容器中使用,例如webvolumes_from 看起来像Web 服务使用该卷服务指定对read and write 的访问级别

【讨论】:

  • 如何使用 docker-compose 文件 version 2 来完成这项工作?我猜它使用volumes_from语法,你能指定具体用法吗?
  • 你可以看到我更新了一个版本 2 docker 的例子。
  • 谢谢,如果你在redis中定义了多个卷,是否可以只选择其中一个卷暴露给其他服务,使用volumes_from语法?
  • @JavaSa 不,但您始终可以复制并粘贴您需要的原始定义。
  • @leggewie 是的,您可能必须在 docker-compose 文件的根级别将其声明为外部卷,然后在同一 docker-compose 文件中将其作为普通 docker 卷访问并确保该卷是之前创建的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2021-10-22
  • 1970-01-01
相关资源
最近更新 更多