本文从不同角度介绍docker使用过程中的代理配置。
1. 系统代理配置方法
此方法适用于容器环境配置以及镜像打包。
- 新建
proxy
文本文件(名字可以更换):
- 编辑
proxy
,填入以下信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!/bin/bash
# 设置代理环境变量 export HTTP_PROXY="http://127.0.0.1:7890" export http_proxy="http://127.0.0.1:7890" export HTTPS_PROXY="http://127.0.0.1:7890" export https_proxy="http://127.0.0.1:7890" export SOCKS_PROXY="socks5://127.0.0.1:7891" export socks_proxy="socks5://127.0.0.1:7891" export NO_PROXY="localhost,127.0.0.1" export no_proxy="localhost,127.0.0.1"
# 输出当前的代理设置 echo "当前代理设置如下:" echo "HTTP_PROXY: $HTTP_PROXY" echo "http_proxy: $http_proxy" echo "HTTPS_PROXY: $HTTPS_PROXY" echo "https_proxy: $https_proxy" echo "SOCKS_PROXY: $SOCKS_PROXY" echo "socks_proxy: $socks_proxy" echo "NO_PROXY: $NO_PROXY" echo "no_proxy: $no_proxy" ~
|
- ip默认本机,端口根据实际代理端口填写。编辑好之后每次在当前会话窗口运行以下命令即可临时生效:
永久生效需要将上述命令填入环境变量中 例如.bashrc
中。
2. 配置docker代理
此设置适用于镜像上传与拉取。
-
编辑/etc/docker/daemon.json
文件
如果需要自定义代理 (推荐)则填入:
1 2 3 4 5 6 7
| { "proxies": { "http-proxy": "http://27.0.0.1:7890", "https-proxy": "http://127.0.0.1:7890", "no-proxy": "localhost,127.0.0.1" } }
|
如果需要设置其他现成镜像源,例如飞牛OS的docker镜像源,则填入:
1
| {"insecure-registries":["127.0.0.1:19827"], "live-restore":true, "registry-mirrors":["https://docker.ketches.cn"]}
|
- 编辑好后重启docker和daemon服务:
1 2
| systemctl daemon-reload systemctl restart docker
|
3. 容器代理配置
适用于运行期内容器的代理。
在对应docker-compose.yaml 文件下设置环境变量,例如
1 2 3 4 5
| environment: - HTTP_PROXY=http://host.docker.internal:7890 - HTTPS_PROXY=http://host.docker.internal:7890 extra_hosts: - "host.docker.internal:host-gateway"
|