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

Docker-Compose(Ubuntu环境):容器无法访问宿主机网络问题

解决静态IP Ubuntu环境下Docker容器DNS解析失败问题

看起来你遇到的是静态网络配置导致Docker容器DNS解析异常的问题——毕竟DHCP环境下系统会自动获取DNS服务器,而手动配置时很容易漏掉DNS的正确设置,导致容器继承了无效的DNS配置,进而无法解析archive.ubuntu.com这类域名。

我给你整理几个排查和解决的步骤,亲测有效:

1. 先确认宿主机的DNS是否正常工作

首先登录宿主机,执行以下命令验证基础网络:

ping archive.ubuntu.com
cat /etc/resolv.conf

如果宿主机也ping不通域名,那问题根源在宿主机的静态网络配置上:

  • 对于Ubuntu 18.04及以上版本,编辑/etc/netplan/*.yaml文件,添加正确的DNS服务器(比如公司内网DNS或公共的8.8.8.8):
    network:
      ethernets:
        enp0s3:
          addresses: [192.168.1.100/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 你的公司内网DNS]
      version: 2
    
    保存后执行sudo netplan apply生效。
  • 对于旧版Ubuntu,编辑/etc/network/interfaces,添加dns-nameservers配置,再执行sudo systemctl restart networking重启网络服务。

宿主机DNS正常后,再测试容器的解析情况。

2. 给Docker容器手动指定DNS服务器

如果宿主机DNS没问题,但容器还是解析失败,说明Docker没有正确继承宿主机的DNS配置,可以分两种方式修复:

临时解决(单次容器生效)

用docker run启动容器时手动指定DNS服务器:

docker run --dns 8.8.8.8 --dns 114.114.114.114 -it ubuntu:xenial bash

进入容器后再执行apt-get update,应该就能正常拉取资源了。

永久解决(所有容器生效)

创建或修改Docker守护进程配置文件/etc/docker/daemon.json,添加全局DNS配置:

{
  "dns": ["8.8.8.8", "你的公司内网DNS地址"]
}

保存后重启Docker服务:

sudo systemctl restart docker

之后所有新启动的容器都会自动使用这个DNS配置。

3. 在docker-compose.yml里配置DNS

如果是用docker-compose管理容器,直接在compose文件里添加DNS配置即可,两种方式可选:

给单个服务配置

version: '3'
services:
  your-service:
    image: ubuntu:xenial
    dns:
      - 8.8.8.8
      - 你的公司内网DNS

全局配置(所有服务生效)

version: '3'
services:
  your-service:
    image: ubuntu:xenial

# 全局DNS配置
networks:
  default:
    dns:
      - 8.8.8.8
      - 你的公司内网DNS

修改完compose文件后,重启容器生效:

docker-compose down && docker-compose up -d

4. 检查公司网络的防火墙/代理限制

如果以上步骤都没用,可能是公司网络禁止了容器对外的DNS请求(UDP 53端口)。可以先测试把容器网络模式改成host(仅用于排查,不推荐生产环境):

services:
  your-service:
    image: ubuntu:xenial
    network_mode: host

如果改成host模式后能正常解析,说明bridge模式下的网络被拦截了,需要联系运维调整网络策略。


内容的提问来源于stack exchange,提问作者Matt Ryles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:02:34