如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器
Posted
技术标签:
【中文标题】如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器【英文标题】:how to attach a EBS volume to my container using docker-compose.yml and ecs-cli 【发布时间】:2016-10-31 12:16:47 【问题描述】:我正在使用docker-compose.yml
来定义一组容器。并使用ecs-cli compose (service) up
在AWS
上创建我的应用程序。
我知道AWS ECS
在创建容器时会自动提供 100GB EBS
。 (即使托管容器的 EC2
实例只有 8GB 的硬盘。)
我想要一个持久存储,这样即使我更新了我的容器,它仍然可以指向相同的 100GB EBS
。我很确定我可以做到以下几点来实现这个目标:
将外部
EBS
附加到EC2 实例,并在EC2 实例中使用volume
撰写文件以将该卷附加到容器。
但是,我觉得在 ECS 上可能有更好的方法,因为它会自动为您提供 100GB ELB。也就是说,如果我使用上述方法,那么我真的“浪费”了每个容器附带的 100GB 卷。 那么,实现这一目标的最佳方法是什么。能否以如下 docker-compose.yml 格式给出答案?
container1:
image: image1
container2:
image: image2
links:
- "container1"
【问题讨论】:
你找到解决办法了吗? 【参考方案1】:不确定您是否已经解决了这个问题。这是为我工作的docker-compose.yml
。
version: '2'
services:
container1:
volumes:
- /var/ebsshare:/ebs
container2:
volumes_from:
- container1:rw
请确保您的 EBS 源路径 (/var/ebsshare) 具有必要的权限,以便 docker 容器可以对其读取和写入数据(chmod 755?)。
container2 以读写(rw)权限共享来自 container1 的卷。
【讨论】:
以上是关于如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器的主要内容,如果未能解决你的问题,请参考以下文章
如何从.env文件获取环境变量到docker-compose.yml?
如何从 docker-compose.yml 更改 docker-compose.yml 中已安装卷的权限?
如何在 AWS Elastic Container Service 中使用现有的 docker-compose.yml 文件?