簡體   English   中英

如何在ECS容器中使用EBS卷

[英]How do I use EBS volume with ECS container

我創建了一個EBS卷,將其附加並安裝到我的Container實例中。 在任務定義卷中,我使用已安裝的目錄設置卷Source Path。 容器數據不是在掛載的目錄中創建的,掛載的EBS之外的所有其他目錄都可以正常工作。

目的是將數據保存在容器外,並用另一個卷備份它。

有沒有辦法在我的容器中使用這個附加的卷? 或者是使用卷和備份的更好方法。

編輯 :它是使用隨機的docker圖像測試運行它指定音量,我遇到了同樣的問題。 我設法讓它重新啟動Docker服務,但我仍然在尋找一個沒有重啟Docker的解決方案。

使用作為已裝入的EBS的卷目錄檢查容器

"HostConfig": {
  "Binds": [
  "/mnt/data:/data"
],
...
"Mounts": [
  {
    "Source": "/mnt/data",
    "Destination": "/data",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
],

目錄顯示:

$ ls /mnt/data/
lost+found

使用不是已安裝的EBS的卷目錄檢查容器

"HostConfig": {
  "Binds": [
    "/home/ec2-user/data:/data"
  ],
...
"Mounts": [
  {
    "Source": "/home/ec2-user/data",
    "Destination": "/data",
    "Mode": "",
    "RW": true,
    "Propagation": "rprivate"
  }
]

目錄顯示:

$ ls /home/ec2-user/data
databases dbms

聽起來您可能想要做的就是使用AWS EC2 啟動配置 使用啟動配置,您可以指定在啟動時創建並附加到您的實例的EBS卷。 這在Docker代理和后續任務啟動之前發生。

作為啟動配置的一部分,您還需要使用以下內容更新“ 配置詳細信息”下的“ 用戶”數據

mkdir /data;
mkfs -t ext4 /dev/xvdb;
mount /dev/xvdb /data;
echo '/dev/xvdb /data ext4 defaults,nofail 0 2' >> /etc/fstab;

然后,只要您的容器設置為訪問主機上的/data ,一切都將正常工作。

額外獎勵:如果您正在使用ECS群集,我認為您已經在使用啟動配置來將您的實例加入群集。 如果沒有,您也可以使用以下內容自動添加新實例:

#!/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

希望這可以幫助。

關於在任務中使用數據卷的當前文檔似乎解決了這個問題:

在發布Amazon ECS優化的AMI版本2017.03.a之前,只有Docker守護程序啟動時可用的文件系統才可用於Docker容器。 您可以使用最新的Amazon ECS優化AMI來避免此限制,或者您可以將docker軟件包升級到最新版本並重新啟動Docker。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM