【问题标题】:Specify Location of Docker Images, Containers & Volumes for each docker-compose.yml?为每个 docker-compose.yml 指定 Docker 映像、容器和卷的位置?
【发布时间】:2020-02-02 17:45:10
【问题描述】:

在 Ubuntu 18.04.3 机器上连接了新驱动器并安装在 /mnt/elk 上,是否可以配置 docker-compose.yml 以便与此 docker-compose.yml 相关的所有图像、容器和卷都存储在 @ 987654325@?

目前,所有内容似乎都存储在第一个驱动器/var/lib/docker/overlay、/var/lib/docker/containers 和/var/lib/docker/volumes 上,并且该驱动器几乎已满。因此,我们想将 docker-compose 设置(如下所示的文件)从第一个驱动器移动到位于 /mnt/elk 的新驱动器。

其他 docker-compose 设置可以保留在第一个驱动器上。如果第一个驱动器上的另一个 docker-compose.yml 需要相同的图像,则可以在两个驱动器上存储相同的图像。

谢谢!


docker-compose.yml 用于/mnt/elk

来自https://github.com/deviantony/docker-elk/blob/master/docker-compose.yml

version: '3.2'

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: changeme
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    networks:
      - elk

  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

【问题讨论】:

    标签: docker ubuntu docker-compose devops virtualization


    【解决方案1】:

    见data-root的全局docker daemon配置(只能配置一个数据根):

    --data-root string 持久化Docker状态的根目录(默认“/var/lib/docker”)

    正确停止 docker 守护进程,configure docker daemon,例如/etc/docker/daemon.json:

    {
      "data-root": "/mnt/elk"
    }
    

    将数据从/var/lib/docker 复制到/mnt/elk 并尝试启动docker daemon。您可能对存储驱动程序有疑问(您可能需要使用适当的参数格式化新的 FS,或者可能需要明确指定使用的存储驱动程序)。注意:只需copy,因为如果出现问题,您需要备份。您可能会丢失所有卷、映像、容器……,因此强烈建议备份。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 2019-08-26
      • 2017-01-31
      • 1970-01-01
      • 2021-04-27
      相关资源
      最近更新 更多