2026年01月21日
Docker 配置代理完整指南
背景
在国内环境下使用 Docker 时,经常遇到拉取镜像缓慢或超时的问题。虽然可以配置镜像加速器,但随着国内镜像源的不稳定,使用代理成为了更可靠的解决方案。
问题现象
执行
docker build或docker pull时出现以下错误:ERROR: failed to solve: DeadlineExceeded: failed to resolve source metadata for docker.io/xxx dial tcp xxx.xxx.xxx.xxx:443: i/o timeout核心原理
Docker 架构分为两部分:
- Docker Client: 命令行工具,接收用户命令
- Docker Daemon: 后台服务,实际执行拉取镜像等操作
当我们在终端设置
export HTTP_PROXY=...时,只影响Docker Client,而真正需要网络访问的Docker Daemon并未使用代理。
解决方案
为 Docker Daemon 配置代理(推荐)
- 创建 systemd 配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d - 创建代理配置文件
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf - 添加代理配置
[Service] Environment="HTTP_PROXY=http://your-proxy-ip:port" Environment="HTTPS_PROXY=http://your-proxy-ip:port" Environment="NO_PROXY=localhost,127.0.0.1,*.local,registry.internal.com"配置说明:
- HTTP_PROXY: HTTP 协议代理地址
- HTTPS_PROXY: HTTPS 协议代理地址(Docker Hub 使用 HTTPS)
- NO_PROXY: 不使用代理的地址列表,通常包括:
- localhost, 127.0.0.1: 本地地址
- *.local: 本地域名
- 内网私有镜像仓库域名
- 重载配置并重启 Docker
# 重载 systemd 配置 sudo systemctl daemon-reload # 重启 Docker 服务 sudo systemctl restart docker - 验证配置
# 查看 Docker 服务的环境变量 sudo systemctl show --property=Environment docker预期输出:
Environment=HTTP_PROXY=http://your-proxy-ip:port HTTPS_PROXY=http://your-proxy-ip:port NO_PROXY=localhost,127.0.0.1 - 测试代理连接
# 测试是否能通过代理访问 Docker Hub curl -x http://your-proxy-ip:port -I https://registry-1.docker.io/v2/ # 拉取测试镜像 docker pull hello-world
文章归档
文章日历
| 2026 年 01 月 | ||||||
|---|---|---|---|---|---|---|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
文章标签
- Linux
- Go
- Yii
- 新浪
- CentOS
- PHP
- Git
- WSL
- Composer
- Mac
- 入职
- Bootstrap
- 翻译
- UCenter
- 厦门
- 出差
- 长沙
- 湖南卫视
- 微博
- Tengine
- YUI
- 泰国
- pecl
- 优化
- GitLab
- 迁移
- rootless
- 年会
- 生日
- Tengin
- RedHat
- Sphinx
- cygwin
- Windows
- Tmux
- Zsh
- 升级
- MySQL
- sql_mode
- Shadowsockets
- 面向对象
- HTTP
- 状态码
- grep
- unoconv
- PPT
- Nginx
- htpasswd
- golang
最新评论
-
崔亮 于 19-05-23 评论了Tengine 2.2.2 配置 http2 协议出现的坑 -
王媛 于 19-01-31 评论了Yii China 是官方唯一认可的中文社区 -
三杯蛙 于 19-01-24 评论了Go 语言中 json 的操作以及常见问题 -
三杯蛙 于 19-01-24 评论了新浪赴泰国曼谷和芭提雅团建 -
巡洋舰 于 18-09-05 评论了CentOS 安装 PHP7 -
小不点 于 11-03-02 评论了WordPress 如何控制每页显示的条数 -
白领厕工 于 10-12-22 评论了关于 phpMyAdmin 免输入用户名和密码,直接进入管理界面 -
清晨的欣赏 于 10-08-04 评论了PHP 5.4 的新特性 -
易赛官网 于 10-07-27 评论了PHP 5.4 的新特性 -
文秘之家 于 10-07-17 评论了PHP 5.4 的新特性
常用工具
- 时间戳转换
- URL ENCODE/DECODE
- JSON
- 正则测试