Docker的网络代理配置
因为网络原因拉取docker官方镜像经常失败或者速度非常慢,可以考虑通过代理服务器拉取镜像。 配置加速器 vim /etc/docker/daemon.json { "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] } 注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。 之后重新启动服务 sudo systemctl daemon-reload sudo systemctl restart docker docker pull代理 在执行docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置 mkdir -p /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/proxy.conf 在这个proxy.conf文件(可以是任意*.conf的形式)中,添加以下内容: [Service] Environment="HTTP_PROXY=http://192.168.112.57:7890" Environment="HTTPS_PROXY=http://192.168.112.57:7890" Environment="NO_PROXY=localhost,127.0.0.1" 之后重新启动服务 systemctl daemon-reload systemctl restart docker Container代理 用户级代理 vim ~/.docker/config.json { "proxies": { "default": { "httpProxy": "http://192.168.112.57:7890", "httpsProxy": "http://192.168.112.57:7890", "noProxy": "localhost,127.0.0.1" } } } 这种方法默认在所有配置修改后启动的容器生效 容器级代理 容器的网络代理,也可以直接在其运行时通过-e注入http_proxy等环境变量。docker-compose的是要配置environment 格式如下: web: environment: HTTP_PROXY: 'http://192.168.112.57:7890' HTTPS_PROXY: 'http://192.168.112.57:7890' NO_PROXY: 'localhost,127.0.0.1' docker build代理 虽然docker build的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。 在构建时,需要注入http_proxy等参数 ...