配置Docker的HTTP代理

本文介绍了在公司环境中,由于需要通过HTTP代理访问外网,如何配置Docker以使用代理进行网络操作。详细步骤包括创建配置文件`http-proxy.conf`,设置HTTP_PROXY和NO_PROXY环境变量,以及处理docker0虚拟网卡的网络问题,确保Docker能够成功通过代理连接外网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是 CHAOS整理而得,在此贴图,记录一下docker代理上网的问题,CHAOS的个人博客:http://www.kalistudy.com/

场景:
在公司想要上外网,必须走http代理,所以docker安装完成后,想要去访问外网,下载image,就必须设置代理。
比如搜索image
docker search webgoat-8.0
如果外网不同,会报错

解决代理的方法,参考官网教程
简单总结一下步骤
1、创建文件夹
### 如何在 Docker 中正确配置代理设置 #### 方法一:通过手动启动 Docker Daemon 设置代理 可以通过修改 Docker 的 systemd 服务文件来实现代理配置。具体操作如下: 1. 创建或编辑 `/etc/systemd/system/docker.service.d/http-proxy.conf` 文件: ```bash sudo mkdir -p /etc/systemd/system/docker.service.d sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf ``` 2. 在 `http-proxy.conf` 文件中添加以下内容,替换 `<proxy-address>` 和 `<port>` 为实际的代理地址和端口号: ```ini [Service] Environment="HTTP_PROXY=http://<proxy-address>:<port>" Environment="HTTPS_PROXY=http://<proxy-address>:<port>" Environment="NO_PROXY=localhost,127.0.0.1" ``` 3. 重新加载 systemd 配置并重启 Docker 服务以使更改生效: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` 此方法适用于需要全局配置代理的情况[^3]。 --- #### 方法二:通过 Docker 守护进程配置代理 对于更复杂的场景,可以直接修改 Docker 守护进程的配置文件来进行代理设置。以下是具体的步骤: 1. 编辑或创建 Docker 守护进程的 JSON 配置文件 `/etc/docker/daemon.json`: ```bash sudo nano /etc/docker/daemon.json ``` 2. 添加以下内容到该文件中(根据实际情况调整代理地址): ```json { "proxies": { "default": { "httpProxy": "http://<proxy-address>:<port>", "httpsProxy": "http://<proxy-address>:<port>", "noProxy": "localhost,127.0.0.1" } } } ``` 3. 保存文件后,重启 Docker 服务以应用新的配置: ```bash sudo systemctl restart docker ``` 这种方法允许更加灵活地定义不同环境下的代理规则[^2]。 --- #### 方法三:临时指定代理变量 如果仅需一次性运行某个容器时使用代理,则可以在命令行中临时设置环境变量。例如: ```bash export HTTP_PROXY=http://<proxy-address>:<port> export HTTPS_PROXY=http://<proxy-address>:<port> export NO_PROXY=localhost,127.0.0.1 docker run hello-world ``` 这种方式不会影响其他 Docker 运行实例,适合短期测试用途。 --- #### 注意事项 当防火墙启用时,应确保相关代理端口已被放行。通常涉及的端口可能包括但不限于 2375 或自定义代理端口。可通过以下方式开放这些端口: ```bash sudo firewall-cmd --add-port=<port>/tcp --permanent sudo firewall-cmd --reload ``` 这样能够避免因防火墙拦截而导致的连接失败问题[^1]。 最后验证代理是否正常工作可尝试拉取官方镜像: ```bash docker pull alpine ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值