欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Docker配置HTTP/HTTPS代理的方法

程序员文章站 2022-05-12 11:27:32
起因 我在使用docker的pull命令拉取elk官方提供的镜像时,会出现无法连接的情况,并且会出现tls handshake timeout的错误。在搜索相关文章之...

起因

我在使用docker的pull命令拉取elk官方提供的镜像时,会出现无法连接的情况,并且会出现tls handshake timeout的错误。在搜索相关文章之后得出结论:国内的网络环境不好,导致连接docker.elastic.co失败或无法连接。于是我第一时间想到了代理的方式,好在docker支持设置代理来访问其他registry,下面记录整个配置过程。

准备工作

首先,你的机器上需要安装好docker,当我写这篇文章时,docker的版本为18.03,对于后续版本,本文章的配置方法可能会失效。

此外,还需要准备一个代理服务器,可以正常访问*网站(如:google,youtube等)。我用的是vps搭建的*代理,本机*客户端开启之后可以直接通过http://127.0.0.1:1080/访问*网站。

假设你的环境也是ubuntu(其他环境应该也是类似的)。

开始配置

1、创建如下路径的目录

sudo mkdir -p /etc/systemd/system/docker.service.d

2、进入到上一步创建的目录下,并在该目录下创建一个名为http-proxy.conf的文件(如:/etc/systemd/system/docker.service.d/http-proxy.conf),使用vim编辑文件内容如下

[service]
environment="https_proxy=http://127.0.0.1:1080/" "no_proxy=localhost,127.0.0.1,registry.docker-cn.com,hub-mirror.c.163.com"

3、刷新配置

sudo systemctl daemon-reload

4、重启docker服务

sudo systemctl restart docker

5、查看配置

systemctl show --property=environment docker

出现如下信息表示配置成功:

environment=https_proxy=http://127.0.0.1:1080/ no_proxy=localhost,127.0.0.1,registry.docker-cn.com,hub-mirror.c.163.com

6、验证配置是否生效

重新从docker.elastic.co上拉取elasticsearch镜像,此时已经可以正常连接了,只是速度较慢。

 liuwei@liuwei-ubuntu:~$ sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.4
6.2.4: pulling from elasticsearch/elasticsearch
469cfcc7a4b3: downloading [==========================>                        ]  38.87mb/73.17mb
8e27facfa9e0: downloading [===================================>               ]  40.05mb/56.33mb
cdd15392adc7: download complete
ddcc70fbd933: downloading [====================>                              ]  44.31mb/108.9mb
3d3fa0383994: waiting
15d1376ebd55: waiting

这种方法适用于从一些第三方提供的registry上拉取镜像时,由于网络原因无法连接。如果从docker官方的镜像仓库中拉取镜像时,一种比较好的办法就是配置registry-mirrors实现加速,具体方法请自行搜索。

上述步骤是来自docker官方文档中的部分,原文地址为control docker with systemd。

如果你在配置过程遇到问题,欢迎在留言讨论。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。