Docker容器安装google-chrome-stable失败:apt源连接被拒绝且无代理拦截
解决方案
根因定位
报错显示容器构建过程中所有Debian官方源、Google Chrome源均出现80端口连接被拒,排除宿主机代理拦截的前提下,问题通常集中在两类场景:
- Docker默认DNS配置异常,导致容器内部无法正常解析外部域名,出站请求失败
- 服务器所处网络环境无法正常访问境外官方源,导致连接被拒
修复步骤
第一步:修复Docker DNS配置
- 先在宿主机执行
cat /etc/resolv.conf记录可用的DNS服务器地址 - 编辑Docker daemon配置文件
/etc/docker/daemon.json,添加DNS配置项,可填入公共DNS或你记录的可用DNS - 执行
sudo systemctl daemon-reload重载配置,再执行sudo systemctl restart docker重启Docker服务,之后重新构建镜像测试
第二步:调整Dockerfile配置
如果DNS调整后仍连接失败,可修改Dockerfile,在执行apt update前先替换软件源为当前网络环境可正常访问的镜像源,同时修正原Dockerfile存在的权限设置错误:
FROM python:latest COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . # 替换Debian官方源为当前网络可用的镜像源 RUN sed -i 's/deb.debian.org/替换为可用的源地址/g' /etc/apt/sources.list && \ sed -i 's/security.debian.org/替换为可用的源地址/g' /etc/apt/sources.list RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && \ echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list && \ apt update -y && \ apt install -y google-chrome-stable # 原大写X无法正确赋予二进制文件执行权限,改为小写x RUN chmod +x /driver/chromedriver CMD [ "python", "./main.py" ]
额外排查项
如果以上操作都无效,可检查Docker的iptables规则是否正常,或临时关闭宿主机防火墙测试是否为防火墙规则拦截了容器的出站请求。
内容的提问来源于stack exchange,提问作者yungweezy
相关产品推荐
相关产品推荐

