如何将在EC2实例中运行的docker卷挂载到EBS卷上?有哪些步骤?

时间:2019-10-23 04:07:38

标签: amazon-web-services docker amazon-ec2 docker-volume

当前ec2实例正在运行,并且该Docker容器内部正在运行。 我有2个容器在EC2实例中运行。 1-应用容器。 2-数据库(CouchDb)容器。 我需要将数据库中的数据存储到EBS卷中。 我有一个docker-compose文件,我正在使用'docker-compose up'命令启动容器。

version: '2.1'
services:
  web:
    build: .
    ports:
     - "4200:4200"
     - "7020:7020"
    depends_on:
      couchdb:
        condition: "service_healthy"
    volumes:
      - ./app:/usr/src/app/app
  couchdb:
    image: "couchdb:1.7.1"
    ports:
     - "5984:5984"
    healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:5984/"]
        interval: 10s
        timeout: 90s
        retries: 9

1 个答案:

答案 0 :(得分:0)

您需要将EC2实例目录与CouchDB容器绑定。

数据存储位置

  

重要说明:有几种存储数据的方式,   在Docker容器中运行的应用程序。我们鼓励使用   长沙发图片,以熟悉options available

     

在主机系统上的适当卷上创建数据目录,例如   /home/ec2-user/data。像这样启动您的Sofadb容器:

$ docker run --name mycouchdb -v /home/ec2-user/data:/opt/couchdb/data -d couchdb:tag
  

该命令的-v /home/ec2-user/data:/opt/couchdb/data部分从以下位置挂载/home/ec2-user/data目录:   容器内的基础主机系统为/opt/couchdb/data,   默认情况下,CouchDB将在其中写入其数据文件。

CouchDB Store Data

更新

对于docker-compose

  couchdb:
    image: "couchdb:1.7.1"
    volumes:
      - /home/ec2-user/data:/opt/couchdb/data
    ports:
     - "5984:5984"