Docker中配置 HTTP代理


要在 Docker中配置 HTTP代理,你可以按照以下步骤进行操作:

1.为 Docker守护进程设置 HTTP代理Docker守护进程(daemon)需要通过代理访问外部网络时,可以通过修改 Docker的配置文件来设置代理。


####步骤:


1.创建或编辑 Docker的服务配置文件:
-对于 systemd系统(如 Ubuntu、CentOS等),编辑 /etc/systemd/system/docker.service.d/proxy.conf文件。
-如果目录不存在,可以手动创建。


2.在文件中添加以下内容:

Environment="HTTP_PROXY=http://proxy.example.com:port"Environment="HTTPS_PROXY=http://proxy.example.com:port"Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

-将 proxy.example.com:port替换为你的代理服务器地址和端口。

  • NO_PROXY用于指定不需要通过代理访问的地址。


3.保存文件并退出编辑器。


4.重新加载 systemd配置并重启 Docker服务

sudo systemctl daemon-reload 
sudo systemctl restart docker

5.验证代理是否生效:

systemctl show --property=Environment docker

如果配置正确,你会看到设置的代理环境变量。

2.为 Docker容器设置 HTTP代理如果你希望单个容器使用代理,可以在运行容器时通过环境变量配置。

####步骤:
1.运行容器时添加环境变量

docker run --rm 
-e HTTP_PROXY=http://proxy.example.com:port \
-e HTTPS_PROXY=http://proxy.example.com:port \
-e NO_PROXY=localhost,127.0.0.1,.example.com \
your_image


2.验证容器内的网络请求是否通过代理。


---

###3.为 Docker Build设置 HTTP代理在构建 Docker镜像时,如果需要通过代理访问外部资源,可以在 `Dockerfile`中或构建命令中设置代理。

####方法1:在 `Dockerfile`中设置在 `Dockerfile`中添加以下内容:
```dockerfileENV HTTP_PROXY http://proxy.example.com:portENV HTTPS_PROXY http://proxy.example.com:portENV NO_PROXY localhost,127.0.0.1,.example.com```

####方法2:在构建命令中设置在运行 `docker build`时添加环境变量:
```bashdocker build --build-arg HTTP_PROXY=http://proxy.example.com:port \
--build-arg HTTPS_PROXY=http://proxy.example.com:port \
--build-arg NO_PROXY=localhost,127.0.0.1,.example.com \
-t your_image .



###注意事项-如果代理需要认证,可以在代理地址中包含用户名和密码,例如:http://username:password@proxy.example.com:port
-确保代理服务器的地址和端口正确,并且网络可达。-如果代理配置错误,可能会导致 Docker无法正常访问外部资源。

通过以上步骤,你可以成功为 Docker配置 HTTP代理!






 

在Docker中配置HTTP代理,需修改Docker守护进程配置文件,添加HTTP_PROXY、HTTPS_PROXY和NO_PROXY环境变量,并重启Docker服务。单个容器可通过运行命令时添加环境变量设置代理。构建镜像时,可在Dockerfile或构建命令中设置代理。注意代理地址和端口的正确性,确保网络可达。


来源: 雨林博客(www.yl-blog.com)