龙空技术网

Docker实战010:docker配置代理解决无法pull

编程手札 390

前言:

眼前朋友们对“centosdocker代理”可能比较关心,各位老铁们都需要了解一些“centosdocker代理”的相关资讯。那么小编也在网上汇集了一些关于“centosdocker代理””的相关资讯,希望同学们能喜欢,大家一起来学习一下吧!

这个是在公司内网环境搭建的测试虚拟机,通过桥接的方式将该虚拟机部署在局域网内。由于公司内网没有直接使用外网的权限,所以上网都需要通过配置代理来实现。这里我在服务器的/etc/profile文件中配置了网络代理可以正常的进行软件安装,但是在使用docker时却发现docker命令好像使用不了这个代理(拉取不了镜像)。

尝试在内网环境下访问了下Docker Hub可以载入,说明当前的代理时允许访问Docker库。那么docker无法拉取镜像只能说明虚拟机中的代理在docker中失效,所以这么需要给Docker也来配置HTTP代理以让 Docker 能正常下载镜像。配置的 HTTP代理主要用于 Docker 拉取 (pull) 和推送 (push) 镜像使用,不会影响 Docker 容器的联网状态。

创建服务目录

docker pull命令是由守护进程dockerd来执行,代理需要配在dockerd的环境中。而这个环境受systemd所管控,所以需要在systemd中进行代理配置。执行命令:mkdir -p /etc/systemd/system/docker.service.d在systemd目录下docker.service.d服务目录,该目录用于存放用户的个性设置(默认不存在),创建后会自动读取相关的设置并自动更新覆盖原有的设置。

创建配置文件

在刚才创建的/etc/systemd/system/docker.service.d/目录下创建一个*.conf的的配置文件,这里我们是配置代理就直接定义一个proxy.conf配置文件来添加代理信息。将proxy.example.com:8080换成自己的代理地址,这个代理必须是HTTP代理协议。如果还有内部不需要使用代理来访问则可以添加NO_PROXY配置来跳过代理的地址,填入所用到的本地地址,多个地址用逗号隔开(支持通配符*)。

刷新配置

更新了配置之后我们需要重新读取配置使其生效,然后执行命令:systemctl restart docker来重启docker服务。刷新之后我们可以查通过命令:systemctl show --property=Environment docker看下配置信息,如果在窗口显示了我们刚刚配置的代理信息就说明配置成功了。

验证配置是否生效

最后我们来pull下镜像看看效果,这里我们从Docker Hub上拉取一个最简单的hello-world镜像。这里我们可以看到已经车成功拉取了hello-world镜像,如果不确定可以通过命令:docker images或者docker image ls来查看本机已有的镜像。

总结:

这个一般出现在局域网内,如果遇到无法pull镜像可以尝试下配置docker代理。以上内容是小编给大家分享的【Docker实战010:docker配置代理解决无法pull】。希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

为了方便学习,下面附上本文用到的源码:

# docker pull centosUsing default tag: latestError response from daemon: Get : net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)# mkdir -p /etc/systemd/system/docker.service.d    --p 递归创建目录,如果上级目录不存在则会按目录层级自动创建目录[Service]Environment="HTTP_PROXY=;Environment="HTTPS_PROXY=;Environment="NO_PROXY=localhost,127.0.0.1,.example.com"# systemctl daemon-reload  // 重新载入配置信息# systemctl restart docker // 重启docker服务# systemctl show --property=Environment docker  // 查看配置Environment=HTTP_PROXY= HTTPS_PROXY= 1-1/1 (END)...skipping...Environment=HTTP_PROXY= HTTPS_PROXY= NO_PROXY=localhost,127.0.0.1,registry.docker-cn.com,hub-mirror.c.163.com# docker pull hello-worldUsing default tag: latestlatest: Pulling from library/hello-world0e03bdcc26d7: Pull complete Digest: sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0Status: Downloaded newer image for hello-world:latestdocker.io/library/hello-world:latest# docker imagesREPOSITORY    TAG       IMAGE ID       CREATED        SIZEhello-world   latest    bf756fb1ae65   9 months ago   13.3kB

标签: #centosdocker代理