首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将EBS卷与ECS容器一起使用?

如何将EBS卷与ECS容器一起使用?
EN

Stack Overflow用户
提问于 2016-07-14 18:51:54
回答 2查看 14.3K关注 0票数 14

我创建了一个EBS卷,并将其附加到容器实例中。在任务定义卷中,我用挂载目录设置卷源路径。容器数据不是在挂载目录中创建的,挂载EBS之外的所有其他目录都正常工作。

其目的是将数据从容器中保存出来,并使用此另一个卷备份它。

有没有办法在我的容器里使用这个附加的卷?或者是处理卷和备份的更好方法。

编辑:它使用一个随机的码头映像进行测试,运行它指定音量,我也遇到了同样的问题。我设法使它工作,重新启动码头服务,但我仍然在寻找一个解决方案,而不重新启动码头。

使用已挂载的EBS卷目录检查容器

代码语言:javascript
运行
复制
"HostConfig": {
  "Binds": [
  "/mnt/data:/data"
],
...
"Mounts": [
  {
    "Source": "/mnt/data",
    "Destination": "/data",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
],

该目录显示:

代码语言:javascript
运行
复制
$ ls /mnt/data/
lost+found

使用非挂载EBS的卷目录检查容器

代码语言:javascript
运行
复制
"HostConfig": {
  "Binds": [
    "/home/ec2-user/data:/data"
  ],
...
"Mounts": [
  {
    "Source": "/home/ec2-user/data",
    "Destination": "/data",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
]

该目录显示:

代码语言:javascript
运行
复制
$ ls /home/ec2-user/data
databases dbms
EN

回答 2

Stack Overflow用户

发布于 2017-06-27 22:23:19

听起来,您可能想要做的是使用AWS EC2 发射配置。使用启动配置,您可以指定在启动时创建EBS卷并将其附加到实例。这种情况发生在码头代理和随后的任务启动之前。

作为启动配置的一部分,您还需要在 configuration details下更新用户数据,内容如下:

代码语言:javascript
运行
复制
mkdir /data;
mkfs -t ext4 /dev/xvdb;
mount /dev/xvdb /data;
echo '/dev/xvdb /data ext4 defaults,nofail 0 2' >> /etc/fstab;

然后,只要您的容器被设置为访问主机上的/data,一切都会在第一次运行时就正常工作。

奖励:如果您使用ECS集群,我想您已经在使用启动配置来将实例连接到集群中。如果没有,您也可以自动添加新实例,使用如下所示:

代码语言:javascript
运行
复制
#!/bin/bash 
docker pull amazon/amazon-ecs-agent
docker run --name ecs-agent --detach=true --restart=on-failure:10 --volume=/var/run/docker.sock:/var/run/docker.sock --volume=/var/log/ecs/:/log --volume=/var/lib/ecs/data:/data --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro   --volume=/var/run/docker/execdriver/native:/var/lib/docker/execdriver/native:ro --publish=127.0.0.1:51678:51678 --env=ECS_LOGFILE=/log/ecs-agent.log --env=ECS_AVAILABLE_LOGGING_DRIVERS=[\"json-file\",\"syslog\",\"gelf\"] --env=ECS_LOGLEVEL=info --env=ECS_DATADIR=/data --env=ECS_CLUSTER=your-cluster-here amazon/amazon-ecs-agent:latest

特别是在这个部分中,您需要编辑以下部分:--env=ECS_CLUSTER=your-cluster-here

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2018-09-23 20:12:43

关于在任务中使用数据卷的当前文档似乎解决了这个问题:

在Amazon优化的AMI版本2017.03.a发布之前,只有在Docker守护进程启动时可用的文件系统才可用于Docker容器。您可以使用最新的Amazon优化AMI来避免此限制,也可以将对接程序包升级到最新版本并重新启动Docker。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38382076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档