docker build配置代理
在通过Dockerfile
进行构建镜像时,经常会遇到容器内依赖无法下载的情况,这种原始是由于部分依赖在国内无法访问,必须通过代理进行转发。
配置
创建~/.docker/config.json
文件,并配置如下信息:
1 | { |
- httpProxy:设置http网络访问的代理
- httpsProxy:配置https网络访问的代理
- allProxy:配置其他网络访问的代理
原理
docker会在启动容器时,将以上配置的json,转换为环境变量的形式,上面的配置类似于在Dockerfile
中编写如下指令:
1 | ENV HTTP_PROXY "http://192.168.2.133:7890" |
从上面配置可以看出,就相当于我们启动容器后,通过控制台链接到容器,然后修改Linux内核的代理一样。
我们也可以在启动容器时通过添加参数的方式进行启动容器:
1 | --env HTTP_PROXY="http://192.168.2.133:7890" |
其他参数
- ftp_proxy:配置ftp访问的网络
- no_proxy:不使用代理的网络链接,如 *.test.example.com,.example2.com