【问题标题】:Creating shared directory between containers with docker-compose使用 docker-compose 在容器之间创建共享目录
【发布时间】:2020-08-12 03:00:44
【问题描述】:

我的 Flask 应用程序 (webapp) 内部有两个目录(上传和图像)。我希望我的第二个容器(rq-worker)能够访问它们,所以它可以从上传中获取一些东西,并保存回图像。我如何在我的 docker-compose.yml 中组织它?

version: '3.5'

services:

  web:
    build: ./webapp
    image: webapp
    container_name: webapp
    ports:
      - "5000:5000"
    depends_on:
      - redis-server
      - mongodb

  redis-server:
    image: redis:alpine
    container_name: redis-server
    ports:
      - 6379:6379

  mongodb:
    image: mongo:4.2-bionic
    container_name: mongodb
    ports:
      - "27017:27017"

  rq-worker:
    image: jaredv/rq-docker:0.0.2
    container_name: rq-worker
    command: rq worker -u redis://redis-server:6379 high normal low
    deploy:
      replicas: 1
    depends_on:
      - redis-server

  dashboard:
    build: ./dashboard
    image: dashboard
    container_name: dashboard
    ports:
      - "9181:9181"
    command: rq-dashboard -H redis-server
    depends_on:
      - redis-server

【问题讨论】:

    标签: python docker flask redis


    【解决方案1】:

    您需要像这样指定一个卷:

    volumes:
      data-volume:
    

    然后将其附加到您的服务中,例如对于web

      web:
        build: ./webapp
        image: webapp
        container_name: webapp
        ports:
          - "5000:5000"
        depends_on:
          - redis-server
          - mongodb
        volumes:
          - data-volume:/my/mnt/point
    

    documentation 有更多信息,以及如何配置卷驱动程序,例如如果你想在 NFS 上有一个卷。此外,this lists available 卷插件使 Docker 卷能够跨多个 Docker 主机持续存在。

    【讨论】:

    • 所以现在我必须更改视图内的路径以指向 ie: /var/lib/uploads 保存时而不是在我的 webapp/uploads 中?
    • 您的确切设置在docker-compose.yml 中并不明显,但通常您可以在 FS 中任意位置安装卷。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多