Docker配置HTTP/HTTPS代理的方法

 更新时间:2018年06月06日 10:34:03   作者:一书生VOID的博客  
本篇文章主要介绍了Docker配置HTTP/HTTPS代理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

起因

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

准备工作

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

此外,还需要准备一个代理服务器,可以正常访问境外网站(如:Google,YouTuBe等)。我用的是VPS搭建的Shadowsocks代理,本机Shadowsocks客户端开启之后可以直接通过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。

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

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

相关文章

  • docker容器通过ping直接运行获取公网IP操作

    docker容器通过ping直接运行获取公网IP操作

    这篇文章主要介绍了docker容器通过ping直接运行获取公网IP操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker配置MySql环境的实现步骤

    Docker配置MySql环境的实现步骤

    通过使用Docker,开发人员可以更容易地构建、测试和交付应用程序,同时减少了环境配置和依赖项管理的复杂性,本文主要介绍了Docker配置MySql环境的实现步骤,文中通过示例代码介绍的非常详细,感兴趣的可以了解一下
    2024-02-02
  • docker映射端口穿透内置防火墙的实现

    docker映射端口穿透内置防火墙的实现

    在使用Docker部署项目时,即使未开启CentOS7的Firewalld防火墙,端口仍可被外网访问,这是因为Docker在安装后会接管iptables,并自动添加规则以放行指定端口,解决方法包括依赖外置防火墙放行端口、指定端口监听地址为本机、禁用Docker的iptables规则修改
    2024-10-10
  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    浅谈docker Dockerfile 指令 VOLUME 介绍

    本篇文章主要介绍了浅谈docker Dockerfile 指令 VOLUME 介绍 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • docker安装drone的实现示例

    docker安装drone的实现示例

    Drone是一款基于Docker的持续集成和持续部署平台,可以帮助开发者自动化构建、测试和部署应用程序,本文主要介绍了docker安装drone的实现示例,感兴趣的可以了解一下
    2023-12-12
  • Docker动态添加端口不需要重新建立镜像的方法

    Docker动态添加端口不需要重新建立镜像的方法

    Docker容器在运行期间有时可能会需要修改或者添加暴露的端口,但是有时候运行的容器又不想再另外建立一个新的镜像。接下来通过本文给大家分享Docker动态添加端口不需要重新建立镜像的方法,感兴趣的朋友一起看看吧
    2019-07-07
  • docker logs-查看docker容器日志的实现

    docker logs-查看docker容器日志的实现

    这篇文章主要介绍了docker logs-查看docker容器日志的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker安装配置Oracle详细步骤记录(以作持久化处理)

    Docker安装配置Oracle详细步骤记录(以作持久化处理)

    docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,下面这篇文章主要给大家介绍了关于Docker安装配置Oracle详细步骤的相关资料,需要的朋友可以参考下
    2024-03-03
  • Elasticsearch使用常见问题解决方案

    Elasticsearch使用常见问题解决方案

    这篇文章主要介绍了Elasticsearch使用常见问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • k8s手动拉取docker镜像的方法示例

    k8s手动拉取docker镜像的方法示例

    docker是一种便捷的容器化解决方案,它可以通过拉取镜像的方式轻松地部署和管理应用程序,本文主要介绍了k8s手动拉取docker镜像的方法示例,感兴趣的可以了解一下
    2024-02-02

最新评论