本仓库用于构建Datadog Agent 5.x容器的基础镜像。用户需使用构建后的镜像配置并运行Agent。若需Datadog Agent 6.x Dockerfile,可参考https://github.com/DataDog/datadog-agent/tree/master/Dockerfiles%E3%80%82
默认镜像可直接使用,仅需通过环境变量设置API_KEY。
标准系统启动命令
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e SD_BACKEND=docker \ -e NON_LOCAL_TRAFFIC=false \ datadog/docker-dd-agent:latest
Amazon Linux(版本<2)启动命令
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e SD_BACKEND=docker \ -e NON_LOCAL_TRAFFIC=false \ datadog/docker-dd-agent:latest
主机名(Hostname)
默认情况下,Agent容器使用主机docker info命令中的Name字段作为主机名。如需修改,可通过以下方式:
/etc/dd-agent/datadog.conf中的hostname字段。DD_HOSTNAME设置(推荐,见下文环境变量说明)。控制组(CGroups)
为确保Docker检查正常运行,主机需启用cgroup内存管理,配置方法参考Debian Wiki。
例如,Debian Jessie及以上系统需在启动参数中添加cgroup_enable=memory swapaccount=1,否则Agent无法识别系统。修改启动参数的方法可参考此线程。
自动发现(Autodiscovery)
快速启动命令中已启用自动发现(auto-conf模式),Agent会自动对默认检查模板中列出的容器镜像运行检查。
SD_BACKEND环境变量。环境变量
部分配置参数可通过环境变量调整,具体如下:
| 环境变量 | 说明 |
|---|---|
DD_HOSTNAME | 设置主机名(写入datadog.conf) |
TAGS/DD_TAGS | 设置主机标签,格式:simple-tag-0,tag-key-1:tag-value-1 |
EC2_TAGS | 启用EC2主机标签,设为yes时需实例关联https://github.com/DataDog/dd-agent/wiki/Capturing-EC2-tags-at-startup |
LOG_LEVEL/DD_LOG_LEVEL | 设置日志级别(CRITICAL/ERROR/WARNING/INFO/DEBUG) |
DD_LOGS_STDOUT | 设为yes时将所有日志发送至stdout/stderr,供Docker处理 |
PROXY_HOST/PROXY_PORT/PROXY_USER/PROXY_PASSWORD | 配置代理服务器信息 |
DD_URL | 设置Datadog数据接收服务器(用于https://github.com/DataDog/dd-agent/wiki/Proxy-Configuration#using-the-agent-as-a-proxy%E5%9C%BA%E6%99%AF%EF%BC%89 |
NON_LOCAL_TRAFFIC | 启用/禁用外部IP的statsd上报,默认true;设为false时仅允许本地流量 |
SD_BACKEND | 自动发现后端,设为docker启用(唯一支持的后端) |
SD_CONFIG_BACKEND | 配置后端类型(etcd/consul/zk),用于自动发现模板来源 |
SD_BACKEND_HOST/SD_BACKEND_PORT | 配置后端的地址和端口 |
SD_TEMPLATE_DIR | 配置后端中检查模板的路径,默认datadog/check_configs |
SD_CONSUL_TOKEN | Consul配置后端的认证令牌 |
SD_BACKEND_USER/SD_BACKEND_PASSWORD | etcd配置后端的认证凭据 |
DD_APM_ENABLED | 启用trace-agent(非Alpine镜像支持),允许接收APM追踪数据 |
DD_PROCESS_AGENT_ENABLED | 启用进程Agent(非Alpine镜像支持),用于实时进程/容器视图 |
DD_COLLECT_LABELS_AS_TAGS | 收集指定容器标签为指标标签,格式:com.docker.label.foo,com.docker.label.bar |
MAX_TRACES_PER_SECOND | APM最大采样速率(每秒追踪数),设为0禁用限制 |
DD_HISTOGRAM_PERCENTILES | 直方图分位数,默认0.95,空格分隔多个值(如0.9 0.95 0.99) |
DD_HISTOGRAM_AGGREGATES | 直方图聚合方式,默认max median avg count,空格分隔多个值 |
启用集成
通过环境变量启用
Kubernetes监控:设KUBERNETES=yes启用Kubernetes检查。
KUBERNETES_COLLECT_EVENTS=true;或启用Leader选举(KUBERNETES_LEADER_CANDIDATE=true)并通过KUBERNETES_LEADER_LEASE_DURATION设置租期(秒)。default命名空间,通过KUBERNETES_NAMESPACE_NAME_REGEX设置正则表达式匹配目标命名空间。kube_service标签,设KUBERNETES_COLLECT_SERVICE_TAGS=false禁用。KUBERNETES_KUBELET_HOST覆盖。Mesos监控:设MESOS_MASTER=yes启用Mesos Master检查;MESOS_SLAVE=yes启用Mesos Slave检查。
Marathon监控:设MARATHON_URL=http://leader.mesos:8080启用Marathon检查。
通过自动发现启用
适用于Kubernetes、ECS、Docker Swarm等动态环境,详细说明参考自动发现指南。
通过配置文件挂载启用
bashmkdir /opt/dd-agent-conf.d touch /opt/dd-agent-conf.d/nginx.yaml # 示例:Nginx检查配置
容器启动时会自动将bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -v /opt/dd-agent-conf.d:/conf.d:ro \ # 挂载配置目录 -e API_KEY={your_api_key_here} \ datadog/docker-dd-agent
/conf.d下的.yaml文件复制至/etc/dd-agent/conf.d/(Alpine版本为/opt/datadog-agent/agent/conf.d/)。如需运行基于JMX的检查,需使用JMX镜像(标签格式usual_tag-jmx),例如datadog/docker-dd-agent:latest-jmx、datadog/docker-dd-agent:11.0.5150-jmx。此类镜像在基础镜像上添加了JVM,支持jmxfetch运行。
独立DogStatsD镜像
默认镜像(如latest)同时运行DogStatsD服务器和Agent收集器。如需仅运行DogStatsD,使用独立镜像(标签格式usual_tag-dogstatsd),例如datadog/docker-dd-agent:latest-dogstatsd、datadog/docker-dd-agent:11.0.5141-dogstatsd-alpine。
/proc、/sys/fs或Docker socket。datadog.conf中的全局标签(收集器未运行)。-e DD_APM_ENABLED=true接收APM追踪数据。从主机访问DogStatsD
-p 8125:8125/udp至启动命令。-p 127.0.0.1:8125:8125/udp。禁用DogStatsD
设USE_DOGSTATSD=no禁用DogStatsD。
从其他容器访问DogStatsD
通过Docker主机IP
容器内通过默认路由IP(如ip route查询)访问主机上的DogStatsD,例如配置客户端连接172.17.42.1:8125。
通过Docker链接(Legacy)
启动客户端容器时添加--link dogstatsd:dogstatsd,环境变量DOGSTATSD_PORT_8125_UDP_ADDR和DOGSTATSD_PORT_8125_UDP_PORT自动注入,供客户端使用。
添加-e DD_APM_ENABLED=true启用trace-agent(非Alpine镜像支持),接收APM追踪数据。
从主机访问APM
-p 8126:8126/tcp至启动命令。-p 127.0.0.1:8126:8126/tcp。示例启动命令:
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e DD_APM_ENABLED=true \ -p 8126:8126/tcp \ datadog/docker-dd-agent
从其他容器访问APM
通过Docker链接
启动客户端容器时添加--link dd-agent:dd-agent,环境变量DD_AGENT_PORT_8126_TCP_ADDR和DD_AGENT_PORT_8126_TCP_PORT自动注入。
Python示例配置:
pythonimport os from ddtrace import tracer tracer.configure( hostname=os.environ["DD_AGENT_PORT_8126_TCP_ADDR"], port=os.environ["DD_AGENT_PORT_8126_TCP_PORT"] )
通过Docker主机IP
客户端配置追踪器连接主机默认路由IP(如172.17.0.1):
pythonfrom ddtrace import tracer; tracer.configure(hostname="172.17.0.1", port=8126)
如需在镜像中预配置Agent,可基于官方镜像构建:
创建Dockerfile:
dockerfileFROM datadog/docker-dd-agent # 示例:添加MySQL检查配置 ADD conf.d/mysql.yaml /etc/dd-agent/conf.d/mysql.yaml
构建镜像:
bashdocker build -t dd-agent-image .
运行自定义镜像:
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ dd-agent-image
Agent 5.7+提供Alpine Linux基础镜像(标签格式usual_tag-alpine),体积约为Debian版本的60%,安全性更高。
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ datadog/docker-dd-agent:latest-alpine
/opt/datadog-agent/agent/conf.d/(而非/etc/dd-agent/conf.d/)。/opt/datadog-agent/bin/agent info)。Docker镜像版本格式:X.Y.Z,其中:
X:Docker镜像主版本Y:Docker镜像次版本Z:Agent版本示例:首个包含Datadog Agent 5.5.0的Docker镜像版本为10.0.550。
Debian镜像:
bashdocker exec dd-agent service datadog-agent info
Alpine镜像:
bashdocker exec dd-agent /opt/datadog-agent/bin/agent info
注:
docker exec命令需Docker 1.3及以上版本支持。
bashdocker cp dd-agent:/var/log/datadog /tmp/log-datadog-agent
Debian镜像:
bashdocker exec -it dd-agent bash tail -f /var/log/datadog/dogstatsd.log
Alpine镜像:
bashdocker exec -it dd-agent ash tail -f /opt/datadog-agent/logs/dogstatsd.log
如发现容器相关问题,可提交https://github.com/DataDog/docker-dd-agent/issues%EF%BC%9BAgent%E6%9C%AC%E8%BA%AB%E9%97%AE%E9%A2%98%E8%AF%B7%E5%8F%82%E8%80%83%E5%85%B6%E6%96%87%E6%A1%A3%E6%88%96https://github.com/DataDog/dd-agent/wiki%E3%80%82<|FCResponseEnd|># Datadog Agent 5.x Docker镜像文档
本镜像用于构建Datadog
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务