【问题标题】:How to use Docker Volumes?如何使用 Docker 卷?
【发布时间】:2020-10-09 10:50:04
【问题描述】:

我对 Docker 完全陌生,现在我正在使用一个开源工具,它是一个 Docker 应用程序,我需要根据我的要求对现有应用程序进行一些更改,它应该反映这些更改,我做了一个大量搜索,然后我发现我们可以在 Docker Volumes 的帮助下做到这一点,但是我无法关注网络上的任何文章以及文档?任何建议将不胜感激。

docker-compose.yml:

version: "3.3"

services:
  cvat_db:
    container_name: cvat_db
    image: postgres:10-alpine
    networks:
      default:
        aliases:
          - db
    restart: always
    environment:
      POSTGRES_USER: root
      POSTGRES_DB: cvat
      POSTGRES_HOST_AUTH_METHOD: trust
    volumes:
      - cvat_db:/var/lib/postgresql/data

  cvat_redis:
    container_name: cvat_redis
    image: redis:4.0-alpine
    networks:
      default:
        aliases:
          - redis
    restart: always

  cvat:
    container_name: cvat
    image: cvat/server
    restart: always
    depends_on:
      - cvat_redis
      - cvat_db
    build:
      context: .
      args:
        http_proxy:
        https_proxy:
        no_proxy: nuclio,${no_proxy}
        socks_proxy:
        USER: "django"
        DJANGO_CONFIGURATION: "production"
        TZ: "Etc/UTC"
        CLAM_AV: "no"
    environment:
      DJANGO_MODWSGI_EXTRA_ARGS: ""
      ALLOWED_HOSTS: '*'
      CVAT_REDIS_HOST: "cvat_redis"
      CVAT_POSTGRES_HOST: "cvat_db"
    volumes:
      - cvat_data:/home/django/data
      - cvat_keys:/home/django/keys
      - cvat_logs:/home/django/logs
      - cvat_models:/home/django/models

  cvat_ui:
    container_name: cvat_ui
    image: cvat/ui
    restart: always
    build:
      context: .
      args:
        http_proxy:
        https_proxy:
        no_proxy:
        socks_proxy:
      dockerfile: Dockerfile.ui

    networks:
      default:
        aliases:
          - ui
    depends_on:
      - cvat

  cvat_proxy:
    container_name: cvat_proxy
    image: nginx:stable-alpine
    restart: always
    depends_on:
      - cvat
      - cvat_ui
    environment:
      CVAT_HOST: localhost
    ports:
      - "8080:80"
    volumes:
      - ./cvat_proxy/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./cvat_proxy/conf.d/cvat.conf.template:/etc/nginx/conf.d/cvat.conf.template:ro
    command: /bin/sh -c "envsubst '$$CVAT_HOST' < /etc/nginx/conf.d/cvat.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"

networks:
  default:
    ipam:
      driver: default
      config:
        - subnet: 172.28.0.0/24

volumes:
  cvat_db:
  cvat_data:
  cvat_keys:
  cvat_logs:
  cvat_models:

【问题讨论】:

    标签: django docker devops


    【解决方案1】:

    Docker 卷主要用作在容器外保存数据的一种方式。如果你挂载一个卷并在其中存储数据,当容器被销毁时,数据不会被删除。为了挂载卷,您必须将-v &lt;directory in your machine&gt;:&lt;directory in your container&gt; 添加到您的docker run 命令中。它可能满足您的要求,但很可能还不够。

    如果您的任务要求您更改应用程序的行为,那么您必须重建 docker 映像并在 docker-compose.yml

    中使用它

    【讨论】:

    • ,您是指卷还是容器名称?
    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多