You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose启动的容器出现未配置端口是否为后门?

关于Docker Compose容器中127.0.0.11监听端口的说明

这些绑定在127.0.0.11的TCP/UDP端口是Docker内置的DNS解析服务,并非供应链攻击,属于Docker正常的内部组件行为。

为什么Docker Compose启动会出现,直接docker run不会?

  • Docker Compose默认会为每个服务配置自定义DNS,自动将容器内/etc/resolv.conf的nameserver设置为127.0.0.11——这个地址是Docker在容器内部虚拟的回环地址,对应内置的DNS resolver服务,用于处理容器间的域名解析(比如通过服务名访问同-compose文件中的其他容器)。
  • 直接用docker run启动容器时,默认会继承主机或Docker daemon全局的DNS配置,不会启动这个内置DNS服务,因此看不到这些监听端口。

端口为什么每次不同?

该DNS服务的端口由Docker动态分配,每次启动容器时会随机选取可用端口,所以端口号不固定,但始终绑定在127.0.0.11,仅在容器内部可见,不会对外暴露。

对应代码位置

这个DNS resolver的实现位于Docker Moby项目的pkg/dns/server目录下,核心逻辑是处理容器域名解析请求,当容器启用自定义DNS配置时,Docker会自动启动该服务并注入容器环境。

验证方法

在Docker Compose启动的容器中执行cat /etc/resolv.conf,会看到类似内容:

nameserver 127.0.0.11
options ndots:0

而直接docker run启动的容器中,/etc/resolv.conf的nameserver通常是主机的DNS地址,而非127.0.0.11。

内容的提问来源于stack exchange,提问作者Andy Doucette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:15:40