可靠的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卷的代码,以防某人感兴趣
请问任何你需要的信息,所有的帮助是深深的折磨
这是一个清单:
-
将EBS卷(磁盘)附加到EC2实例(例如
/dev/xvdh
) -
分区(可选)(例如
/dev/xvdh1
) -
在分区/磁盘上创build文件系统
-
在您的EC2实例中装入文件系统(例如
/opt/ebs_data
) -
启动具有卷的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