官方文档:
Docker 配置代理
docker使用proxy分两种情况:
- docker client 希望使用代理,也就是在执行
docker pull
、docker push
等操作时通过代理来访问镜像仓库 - 容器实例希望使用代理,也就是在容器内部希望通过代理来访问网络
环境变量方式
创建 /etc/systemd/system/docker.service.d 目录
1
mkdir -p /etc/systemd/system/docker.service.d
配置 http-proxy.conf 文件,文件内容如下
1
2
3
4[Service]
Environment="HTTPS_PROXY=http://10.1.10.51:8888"
Environment="HTTP_PROXY=http://10.1.10.51:8888"
Environment="NO_PROXY=localhost,127.0.0.1,10.1.40.69,registry-changsha.vonebaas.com,*.aliyuncs.com"重启 Docker 服务
1
2systemctl daemon-reload
systemctl restart docker
配置客户端方式
注意: 经过测试,这种方式有时候不太可行,建议使用第一种方式
修改 ~/.docker/config.json 文件,修改完内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"auths": {
"registry-changsha.vonebaas.com": {
"auth": "xxaaadadasdadqAAXSDAAASS"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.15 (linux)"
},
"proxies": {
"default": {
"httpProxy": "http://10.1.10.51:8888",
"httpsProxy": "http://10.1.10.51:8888",
"noProxy": "10.1.40.69,registry-changsha.vonebaas.com,*.aliyuncs.com,127.0.0.0/8"
}
}
}
测试拉取国外镜像
测试拉取 gcr.io 仓库的镜像
1
docker pull gcr.io/distroless/static:nonroot
测试拉取 registry.k8s.io 仓库的镜像
1
docker pull registry.k8s.io/ingress-nginx/controller:v1.3.0