首页 > 解决方案 > Docker -v 标志转换为 AWS ECS 任务定义

问题描述

我在这里关注数据狗指南:https ://docs.datadoghq.com/database_monitoring/setup_postgres/aurora/?tab=docker

它说运行这个 docker 命令:

docker run -e "DD_API_KEY=${DD_API_KEY}" \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -l com.datadoghq.ad.check_names='["postgres"]' \
  -l com.datadoghq.ad.init_configs='[{}]' \
  -l com.datadoghq.ad.instances='[{
    "dbm": true,
    "host": "<AWS_INSTANCE_ENDPOINT>",
    "port": 5432,
    "username": "datadog",
    "password": "<UNIQUEPASSWORD>"
  }]' \
  gcr.io/datadoghq/agent:${DD_AGENT_VERSION}

这一切都很好,标签很容易配置;我不清楚的是如何设置卷的任务定义(最好在控制台中)

我不确定如何转换-v /var/run/docker.sock:/var/run/docker.sock:ro为这些输入: ECS 任务 ECS 容器

我目前有这个Dockerfile(但我认为这只是解决方案的一部分 - 并且可能不正确):

VOLUME ["/var/run/docker.sock:/var/run/docker.sock:ro"]

标签: dockeramazon-ecsaws-fargatedatadogecs-taskdefinition

解决方案


该映射被称为安装 docker 套接字。这意味着您正在让您的容器访问 docker 守护程序。这反过来意味着这是一件大事。它可以工作,并且某些特定场景需要这样做(例如,Jenkins 容器可能需要它才能在主机上启动新的工作容器)。我不知道足够的数据狗来说明他们用这个做什么。

您没有将它映射到内部,Dockerfile但就您希望在 ECS 控制台上映射它的位置而言,您走在正确的道路上(请参阅此处)。

请注意,使用 Fargate(仅限 EC2)不支持此设置。


推荐阅读