在通过 docker-compose
部署的 Harbor 中,内部 DNS 解析完全依赖 Docker 引擎自带的 DNS 服务,其核心作用是将 docker-compose.yml
中定义的服务名自动映射为容器的私有 IP,实现组件间通过服务名直接通信。以下详细说明其实现原理及查看 DNS 配置的具体方法:
一、内部 DNS 实现原理
Docker Compose 部署 Harbor 时,内部 DNS 解析的核心机制如下:
-
私有网络与 DNS 服务绑定
部署时,Docker Compose 会自动创建一个自定义桥接网络(默认名称为harbor_default
,可在docker-compose.yml
的networks
字段自定义),所有 Harbor 组件(容器)都会加入该网络。
Docker 引擎会为这个网络内置一个 DNS 服务(运行在宿主机的127.0.0.11:53
,由 Docker 守护进程管理),专门负责该网络内的域名解析。 -
服务名自动注册为 DNS 记录
docker-compose.yml
中services
字段定义的