背景

将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. 学习 ES6,一篇文章就够了

    ES6 简介 ECMAScript 6 简称 ES6,是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程 ...

  2. Markdown: 编译pdf

    在网上发布博文的时候希望能顺便在本地保存一份记录,这样总结的东西很多的时候就可以写成一本给自己看的小书了.在linux下面有两个选择latex和markdown,虽然latex非常强大,但是很少有博客 ...

  3. UE4 difference between servertravel and openlevel(多人游戏的关卡切换)

    多人游戏的关卡切换分为无缝和非无缝.非无缝切换时,客户端将跟服务器断开连接,然后重新连接到同一个服务器,服务器则加载一个新地图.无缝切换不会发生这样的情况. 有三个函数供我们使用:UEngine::B ...

  4. 【LeetCode】119. Pascal's Triangle II

    题目: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [ ...

  5. GNU的makefile文件编写说明

    这篇文章讲的相当详细,转来收藏: linux下Makefile学习 MAC

  6. Oracle 使用命令导入dmp文件

    若要导入到特定的表空间则需要新建表空间,若不要求,则用已有的,则只需执行下面的步骤 在dos窗口中输入imp 用户名/密码@ip地址:端口号/数据库实例 file='需要导入的dmp文件的路径' fu ...

  7. vue和mvvm的一些小区别

    Vue.js 和 MVVM 小细节   MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这 ...

  8. Apache+Tomcat实现动静分离

    完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=l ...

  9. 打包可执行的jar

    #配置项目路径 *除程序文件以外,其他相关素材也可以打包进jar,但在内部访问时需以包名作为跟路径,如hello/xxx/yyy.zzz mkdir hello vi hello/HelloWorld ...

  10. MySQL学习笔记(三)

    --回顾 字段类型(列类型):数值型,时间日期型和字符串类型 数值型:整型和小数型(浮点型和定点型) 时间日期型:datetime,date,time,timestamp,year 字符串类型:定长, ...