docker-compose:为绑定挂载和托管挂载定义挂载

新手上路,请多包涵

我正在使用 docker-compose 来定义我的服务。在 docker 中,docker volume 有两个概念。首先是关于 bind mount :安装在主机存储上。

 docker run -d --name web-app -v $HOST/location:/container/location -p 80:80 httpd:latest

其次是关于 managed mount :抽象存储,不依赖于主机。

 docker run -d --name web-app -v /container/location -p 80:80 httpd:latest

我想将这些概念映射到 docker-compose。这意味着在使用 docker-compose 时如何定义 bind mountmanaged mount

原文由 Trần Kim Dự 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 879
2 个回答

您可以在 Docker Compose 的 volumes 部分找到这些 Docker 概念: https ://docs.docker.com/compose/compose-file/#/volumes-volumedriver

例子:

 volumes:
  # Just specify a path and let the Engine create a volume
  - /container/location

  # Specify an absolute path mapping
  - ./myfolder/location:/container/location

原文由 nwinkler 发布,翻译遵循 CC BY-SA 3.0 许可协议

虽然我回答得很晚。但也许它将来会帮助其他人。以下是这两种类型的配置。 https://docs.docker.com/compose/compose-file/compose-file-v3/#volumes

 version: "3.2"
services:
  web:
    image: httpd:latest
    volumes:
      - type: bind
        source: $HOST/location
        target: /container/location
      - type: volume
        source: mydata
        target: /container/location
volumes:
  mydata:

原文由 Raman Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题