配置docker pull代理
Dockerd 代理
在执行docker pull
时,是由守护进程dockerd
来执行。因此,代理需要配在dockerd
的环境中。而这个环境,则是受systemd
所管控,因此实际是systemd
的配置。
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf
在这个proxy.conf
文件(可以是任意*.conf
的形式)中,添加以下内容:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8888/"
Environment="HTTPS_PROXY=http://127.0.0.1:8888/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
Container 代理
在容器运行阶段,如果需要代理上网,则需要配置 ~/.docker/config.json
。以下配置,只在Docker 17.07及以上版本生效。
{"proxies":{"default":{"httpProxy": "http://127.0.0.1:8888","httpsProxy": "http://127.0.0.1.com:8888","noProxy": "localhost,127.0.0.1,.example.com"}}
}
这个是用户级的配置,除了 proxies
,docker login
等相关信息也会在其中。而且还可以配置信息展示的格式、插件参数等。
此外,容器的网络代理,也可以直接在其运行时通过 -e
注入 http_proxy
等环境变量。这两种方法分别适合不同场景。config.json
非常方便,默认在所有配置修改后启动的容器生效,适合个人开发环境。在CI/CD的自动构建环境、或者实际上线运行的环境中,这种方法就不太合适,用 -e
注入这种显式配置会更好,减轻对构建、部署环境的依赖。当然,在这些环境中,最好用良好的设计避免配置代理上网。
Docker Build 代理
虽然 docker build
的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。在构建时,需要注入 http_proxy
等参数。
docker build . \--build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \--build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \--build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \-t your/image:tag
复制
注意:无论是 docker run
还是 docker build
,默认是网络隔绝的。如果代理使用的是 localhost:3128
这类,则会无效。这类仅限本地的代理,必须加上 --network host
才能正常使用。而一般则需要配置代理的外部IP,而且代理本身要开启 Gateway 模式。
重启生效
代理配置完成后,reboot
重启当然可以生效,但不重启也行。
docker build
代理是在执行前设置的,所以修改后,下次执行立即生效。Container 代理的修改也是立即生效的,但是只针对以后启动的 Container,对已经启动的 Container 无效。
dockerd
代理的修改比较特殊,它实际上是改 systemd
的配置,因此需要重载 systemd
并重启 dockerd
才能生效。
sudo systemctl daemon-reload
sudo systemctl restart docker
配置docker pull代理相关推荐
- docker配置HTTP/HTTPS代理访问外网
一. 设置代理原因 因为公司安全需要,所有外网需配置代理后才能上网,docker pull centos会报错: docker: Error response from daemon: Get ...
- 配置docker 代理,连接外部网络并下载docker镜像
一.配置代理: Ubuntu下路径是: /etc/default/docker 不是 /etc/systemd/system/docker.service.d/docker-proxy.conf /e ...
- docker镜像代理配置
docker镜像代理配置 1.背景及概述 1.1.背景 项目中经常需要基于基础镜像构建定制化的镜像,所以经常需要拉取镜像文件进行构建,但是受公司网络的原因,无法直接访问docker.hub进行镜像的拉 ...
- docker pull通过http代理服务拉取镜像docker配置通过私库拉取镜像
docker pull通过http代理服务拉取镜像&docker配置通过私库拉取镜像 一.docker pull通过http代理下载镜像 1.修改/etc/systemd/system/mul ...
- docker pull php7,Docker pull php:7.1-fpm的php.ini配置修改
今天,换了 Deepin 操作系统,开发环境是通过 Docker 搭建的,具体结构如下: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e ...
- Docker网络代理配置
Docker网络代理配置 创建目录 mkdir /etc/systemd/system/docker.service.d 创建http-proxy.conf文件,增加以下内容 cat > /et ...
- Confluence7 配置docker Nginx https 反向代理
前言:首先默认你的Confluence 已经安装好并且设置好证书,此处不做证书导入等介绍. 1.docker 1.拉取仓库nginx镜像,不加版本号默认拉取最新的版本#docker pull ngin ...
- docker安装wget_Docker: docker pull, wget, curl, git clone 等如何更快?
1) Docker 配置 1.1) daemon.json 配置镜像 路径: /etc/docker/daemon.json 文档: Config Daemon registry-mirrors 设定 ...
- 如何配置 Docker 使用代理服务器
因为网络的原因,我们拉取不到 docker 官方的容器, 还有 gcr.io 的容器,github上的容器,因此需要通过代理来拉取容器镜像.使用 Docker 的时候,有3种情况需要使用代理服务器,配 ...
最新文章
- 一位中国博士把整个 CNN 都给可视化了,可交互有细节,每次卷积 ReLU 池化都清清楚楚...
- c语言算法6,c语言6函数和算法.ppt
- 成功解决ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any(
- usnews 计算机专业排名,2019美国大学USNews计算机专业排名
- Linux安装宝塔(Bt-Panel),修改用户名或密码,查看面板入口
- linux安装zlib_Linux zlib和libpng安装(LAMP环境搭建)
- Linux配置IP常用命令
- Kubernetes攻略之新手上路
- pycharm常用设置(keymap设置及eclipse常用快捷键总结)
- mysql image类型_MyCat教程【mysql主从复制实现】
- git 取消 所有暂存_Git版本管理完全指南—学好Git一文足矣
- MPLS在ATM技术上实现的研究
- 正则表达式在NLP的基本应用
- 十四周二次课(3月27日)
- WinHttp用法(WinHttp.WinHttpRequest.5.1方法,属性)
- html5效果案例,10个优秀HTML5网站案例赏析
- 黑科技智能家电新生儿“智能冰箱”
- 一文带你深入了解 SaaS(软件即服务) 的架构设计
- Ts的infer类型推导
- Centos7磁盘阵列部署与修复