1. 配置 Docker 守护进程代理
创建配置文件目录:
sudo mkdir -p /etc/systemd/system/docker.service.d创建配置文件:
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf编辑配置文件,添加以下内容:
[Service] Environment="HTTP_PROXY=http://your_proxy_address:port/" Environment="HTTPS_PROXY=http://your_proxy_address:port/" Environment="NO_PROXY=localhost,127.0.0.1"将
your_proxy_address:port替换为实际的代理地址和端口。重新加载并重启 Docker:
sudo systemctl daemon-reload sudo systemctl restart docker验证配置是否生效:
systemctl show --property=Environment docker
2. 配置 Docker 客户端代理
创建或编辑配置文件:
mkdir -p ~/.docker nano ~/.docker/config.json添加以下内容:
{ "proxies": { "default": { "httpProxy": "http://your_proxy_address:port", "httpsProxy": "http://your_proxy_address:port", "noProxy": "localhost,127.0.0.1" } } }将
your_proxy_address:port替换为实际的代理地址和端口。验证配置是否生效:
docker info | grep -i proxy
3. 容器内部代理设置
运行时临时指定代理:
docker run -e HTTP_PROXY="http://your_proxy_address:port" \ -e HTTPS_PROXY="http://your_proxy_address:port" \ -it ubuntu bash在 Dockerfile 中设置代理:
ENV HTTP_PROXY="http://your_proxy_address:port" ENV HTTPS_PROXY="http://your_proxy_address:port" ENV NO_PROXY="localhost,127.0.0.1"- 全局设置(Docker CLI 配置):
与 Docker 客户端配置相同,所有新容器自动使用代理。
4. 其他代理设置
使用代理脚本:
bash -c "$(curl -sSLf https://xy.ggbond.org/xy/docker_pull.sh)" -s 参数1:完整镜像名 参数2:代理文件路径(可选项)其中,代理文件路径是指存放
docker_mirrors.txt文件的目录,如果不填写默认创建/etc/xiaoya目录,并自动在该目录生成docker_mirrors.txt文件。构建镜像时使用代理:
docker build --build-arg http_proxy=http://your_proxy_address:port --build-arg https_proxy=http://your_proxy_address:port -t image_name .容器与宿主机共享网络时使用代理:
创建容器时使用--network=host参数,然后在容器内设置代理:export ALL_PROXY='socks5://127.0.0.1:port'映射代理端口后使用:
在docker run时带参数-p映射代理的端口到容器,然后在容器内使用:docker run -p 1080:1080 ..... export ALL_PROXY='socks5://127.0.0.1:1080'