可靠的dockerpostgres卷

我正在做一些postgres部署docker,aws和a terraform

事情进展得相当顺利,我开始terraform的实例,与docker使用ansible提供的实例,启动我的postgres容器与ansible也附加一个ebs卷到我的实例,我打算用作主要的数据存储。

但我很困惑如何将音量附加到docker(而不是实例,因为我能够做到这一点使用terraform)

我想可能使用ansible或修改dockerfile,但似乎是答案的“ 音量 ”的文档是不是很清楚。

所以如果我有这样一个可靠的剧本:

name: Start postgis docker_container: name: postgis image: "{{ ecr_url }}" network_mode: bridge exposed_ports: 5432 published_ports: 5432:5432 state: started 

我将如何指定用于Postgres数据存储的ebs卷?

 resource "aws_volume_attachment" "ebs-volume-postgis-attach" { device_name = "/dev/xvdh" volume_id = "${aws_ebs_volume.ebs-volume-postgis.id}" instance_id = "${aws_instance.postgis.id}" } 

这是用来附加ebs卷的代码,以防某人感兴趣

请问任何你需要的信息,所有的帮助是深深的折磨

这是一个清单:

  1. 将EBS卷(磁盘)附加到EC2实例(例如/dev/xvdh

  2. 分区(可选)(例如/dev/xvdh1

  3. 在分区/磁盘上创build文件系统

  4. 在您的EC2实例中装入文件系统(例如/opt/ebs_data

  5. 启动具有卷的Docker容器(例如/opt/ebs_data:/var/lib/postgresql/data

在Ansible的docker_container模块中, volumes是一个列表,所以:

 - docker_container: name: postgis image: "{{ ecr_url }}" network_mode: bridge exposed_ports: - 5432 published_ports: - 5432:5432 state: started volumes: - /opt/ebs_data:/var/lib/postgresql/data