背景

将docker的服务器环境切换到新的网络之后,由于服务器的internet是受限制的(需要连接配置远程代理,不能直接上网)。因此,在使用docker连接docker hub 的时候,就会出错:

错误细节如下:

[root@CNCGTCFS76 system]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: xxx
Password: xxx
Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: dial tcp :443: getsockopt: connection refused

在网上搜索过一番之后,发现: 如果在docker 宿主机上设置了代理(HTTP、HTTPS)之后,在docker daemon 启动的时候,也要相应的告知 daemon,使用代理来访问internet!!

解决方案

如上,就是在docker daemon 启动的时候告知她,我们要是有HTTP或者HTTPS代理!!

尽管docker daemon 的配置可以两种方式来实现:

一.  通过daemon.json 文件来修改

二.  通过覆盖docker.service file来实现

但是对于代理的配置,目前为止(docker 17.06)我们只能使用第二个方案。 具体的步骤如下。。。

1. 创建 docker.service.d 目录

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

2. 创建HTTP 或者HTTPS 代理文件

HTTP:

vim /etc/systemd/system/docker.service.d/http-proxy.conf

HTTPS:

vim /etc/systemd/system/docker.service.d/https-proxy.conf

由于我这里用的是 “HTTPS”,所以只给大家演示HTTPS代理的配置,对于HTTP代理的修改,非常相似,大家可以参考我最后贴出来的连接。

3. 修改 https-proxy.conf 文件

[Service]
Environment="HTTPS_PROXY=xxx.xxx.xxx.xxx:443" "NO_PROXY=localhost,127.0.0.1,xxx.xxxxxx:5000"

解析:

主要是两点内容:

①  HTTPS_PROXY 将它的值对应到您所希望设置的代理服务地址和端口(例如: HTTPS_PROXY=https://proxy.example.com:443),我这里为了保护隐私,就用xxx代替.

②  NO_PROXY 意味着某些情况下我们不需要使用HTTPS代理来访问,一般这就配置私有仓库的路径(例如:NO_PROXY=localhost,127.0.0.1,mydocker-registry.com:5000

4. 完成修改后保存/刷新

###Flush changes:
#systemctl daemon-reload ###Restart Docker:
#systemctl restart docker

5. 查看修改结果

#systemctl show --property=Environment docker

Environment=HTTPS_PROXY=xxx.xxx.xxx.xxx: NO_PROXY=localhost,127.0.0.1,mydocker-registry.com:5000

6. 重新登陆 docker hub

docker login -u xxx -p xxx
Login Succeeded

我们可以看到,docker hub 已经可以访问喽!!

感谢大家的收看,欢迎大家留言交流与顶贴 :)

参考文献

https://docs.docker.com/engine/admin/systemd/

docker - 设置HTTP/HTTPS 代理的更多相关文章

  1. Docker设置http代理

    在国内由于不可描述的原因无法访问Google等网站,但是作为一枚挨踢人士,无法使用Google搜索,在使用Ctrl + C技能时是抓狂的:特别是当下Docker.Kubernetes等容器技术火热的时 ...

  2. python使用http、https代理

    在国内利用Python从Internet上爬取数据时,有些网站或API接口被限速或屏蔽,这时使用代理可以加速爬取过程,减少请求失败,Python程序使用代理的方法主要有以下几种: (1)如果是在代码中 ...

  3. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  4. linux设置http/https proxy及忽略proxy的方法

    msys2设置网络代理 在文件 .bashrc 中添加 export http_proxy="proxy IP:port" 如 export http_proxy="19 ...

  5. charles 设置为chrome代理

    本文参考:charles 设置为chrome代理 将charles设置为chrome的代理 需要注意的是,Chrome 和 Firefox 浏览器并不一定使用的就是本机,可能是一些代理工具,而 Cha ...

  6. 设置国内AndriodSDK代理

    由于一些原因,Google相关很多服务都无法访问,所以在很多时候我们SDK也无法升级,当然通过技术手段肯定可以解决,但是比较麻烦,而且下载速度也不怎么样. 这里笔者介绍一个国内的Android镜像站, ...

  7. Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置

    Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...

  8. IT这一行,如可高速下载国外资源之迅雷设置免费SSH代理下载国外资源

    本文转自SUN'S BLOG 原文地址:IT这一行,如可高速下载国外资源之迅雷 我们这些做IT这一行的人,经常,下载一些国外的一些资源,可是让人蛋碎的是,往往这些资源下载都慢的像蜗牛,真的让人无法忍受 ...

  9. 设置IE浏览器代理上网

    在局域网中,服务器可以直接通过IE网上冲浪,而工作站要想通过IE上网,如果是在服务器使用代理软件的情况下,其IE需要设置代理. 步骤一:启动IE浏览器,选择"工具",再" ...

随机推荐

  1. Python操作redis系列之 列表(list) (四)

    # -*- coding: utf- -*- import redis r =redis.Redis(host=,password="ZBHRwlb1608") 1. Lpush ...

  2. ZooKeeper源码分析-Jute-第二部分

    数据类型和流 本部分描述支持Hadoop的基础数据类型以及复合类型.我们的目的是支持一系列的类型,可以用于在不同的编程语言中简化和有效表达一定范围的记录类型. 基础类型 大部分情况下,Hadoop的大 ...

  3. Flash TextField selectable bug block TextEvent.Link solution

    There is an old version Felx SDK bug(in my case it's Flex SDK v3.3.0.4852) that when TextField.selec ...

  4. web开发中前后端传值

    在JavaScript中,页面与页面间的传值需要注意. 比如,我们通过url向下个页面进行传一个数字时,到下个页面进行解析出来后可能是一个字符串.这样会导致一个现象.调试时,发现我要传的值的确传过来了 ...

  5. openCV使用

    三方框架----> oprnCV使用的步骤 第一步:从官网下载framework添加到工程 1.打开 http://opencv.org/ 2. 3. 4. 3执行完之后 新打开的网页会倒计时为 ...

  6. alive pdf 基本用法

    alive pdf 基本用法 <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplic ...

  7. [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph

    <Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...

  8. CSS 从入门到忘记

    CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 一. css的三种引入方式 二. css的选择器(Select ...

  9. Python 文件对象

    Python 文件对象 1) 内置函数 open() 用于打开和创建文件对象 open(name,[,mode[,bufsize]]) 文件名.模式.缓冲区参数 mode: r 只读 w 写入 a 附 ...

  10. Python3 面向对象程序设计(类)

    一.自定义类 1.属性与方法 格式: class classname: def __init__(self,a,b): self.a=a   self.b=b def ... >一般都有一个__ ...