场景,如下图所示:

服务器B具有两个网卡,分别和服务器A和服务器C互通,这里想要在服务器C上借助服务器B作为桥梁,拉取镜像仓库服务器A上的镜像。

思路也很简单,在服务器上搭建HTTP代理服务,服务器C配置代理,通过代理拉取镜像。

注意,下文出现的IP和上图一一对应。

具体操作如下:

服务器A:

已经搭建好镜像仓库不再赘述。

服务器B:

1、安装squid,squid可以用来代理请求,安装命令:

yum install -y squid

2、编辑squid的配置文件,命令:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

vi /etc/squid/squid.conf

内容全部干掉,改为以下内容:

http_port 3128
http_access allow all

第一个就是指定代理服务的端口,第二个就是允许所有请求,具体配置项介绍参考 传送门

如果要使用https请把端口改为443,并配置证书信息,写法如下:

https_port  cert=/zs/Nginx/xxx.crt key=/zs/Nginx/xxx.key

3、启动,命令如下:

systemctl start squid

如果有防火墙记得关闭防火墙或者打开3128端口

服务器C

1、给Docker添加http代理,注意,不是给操作系统添加http代理,两者的操作方式是不一样的。添加方式如下:

命令:

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

填写内容如下:

[Service]
Environment=HTTP_PROXY=2.2.2.1:

如此服务器B的代理地址就被填写进了配置文件。

2、让配置文件内容生效,命令如下

systemctl daemon-reload
systemctl restart docker

3、尝试拉取服务器A上的镜像仓库里的镜像:

假如服务器A上的镜像仓库跑在5000端口上,且有个镜像:1.1.1.1:5000/hello-world:latest

那么此时直接在服务器上执行以下命令,就能拉取到该镜像:

docker pull 1.1.1.1:/hello-world

参考地址:

http://www.squid-cache.org/Doc/config/

https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

(完毕)

CentOS7下 让Docker pull命令使用squid做http代理拉取目标镜像仓库的镜像的更多相关文章

  1. Centos7下卸载docker

    最近发现某台机器上的Docker服务无法开启,报如下错误: [root@localhost ~]# docker ps -a Cannot connect to the Docker daemon. ...

  2. centos7下安装docker 以及简单使用

    一 环境准备1.虚拟机or物理机 2.centos7系统(稳定,对docker支持友好) 二 安装过程step1:使用yum命令进行安装 yum install -y docker备注:-y 表示不询 ...

  3. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  4. centos7下安装docker(19容器架构)

    What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...

  5. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  6. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  7. Docker学习笔记之从镜像仓库获得镜像

    0x00 概述 之前我们说到了,Docker 与其他虚拟化软件的一处不同就是将镜像管理纳入到了功能之中.实现虚拟化只是程序能够无缝移植的一部分,而有了镜像管理,就真正取代了我们在移植过程中的繁琐操作. ...

  8. centos7下安装docker(7docker base command 命令词典)

    上一章中我总结了学习docker 镜像时所用过的命令,今天先来将docker base command 记录一下,参考:https://docs.docker.com/edge/engine/refe ...

  9. centos7下更改docker镜像和容器的默认路径

    笔者近期在服务器上搭建docker环境,可由于笔者是普通用户,在安装的时候就跳了很多坑,现在记录一下. 一.docker权限问题 据官方解释,搭建docker环境必须使用root权限,或者sudo装, ...

随机推荐

  1. Xshell不能使用退格、删除键进行删除的解决方法

    xshell在输入命令时,如果敲错字母了的时候,想通过按退格键删除敲错的字母,却在屏幕显示出了“^H”,退格不行,再按删除键,却显示出“^[[3~”,怎么着就是删除不了输错的字母. 修改办法:文件-- ...

  2. POJ 1631 Bridging signals (LIS:最长上升子序列)

    题意:给你一个长为n(n<=40000)的整数序列, 要你求出该序列的最长上升子序列LIS. 思路:要求(nlogn)解法 令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列中的最小序 ...

  3. 大数据在教育中的应用 part2笔记

    什么是交叉检验(K-fold cross-validation)   K层交叉检验就是把原始的数据随机分成K个部分.在这K个部分中,选择一个作为测试数据,剩下的K-1个作为训练数据. 交叉检验的过程实 ...

  4. openstack学习-nove控制节点部署(四)

    nove在openstack非常重要,主要负责创建虚拟机 nova计算服务 API :负责接收和响应外部请求.支持openstack API,EC2 API Cert:负责身份认证EC 2 Sched ...

  5. asp.net core session的使用

    Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core 1.0好像需要单独安装,在nuget控制台,选择你 ...

  6. K-means聚类算法及python代码实现

    K-means聚类算法(事先数据并没有类别之分!所有的数据都是一样的) 1.概述 K-means算法是集简单和经典于一身的基于距离的聚类算法 采用距离作为相似性的评价指标,即认为两个对象的距离越近,其 ...

  7. Matrix Power Series POJ3233

    递推思想  先放着 见 https://www.cnblogs.com/jackge/p/3147604.html

  8. 023 SpringMVC拦截器

    一:拦截器的HelloWorld 1.首先自定义拦截器 只要实现接口就行. package com.spring.it.interceptors; import javax.servlet.http. ...

  9. AndrodStudio报错: Cannot launch AVD in emulator.

    Cannot launch AVD in emulator.Output:Hax is enabledHax ram_size 0x60000000HAX is working and emulato ...

  10. laravel 控制器使用MODEL

    第一步:引入MODEL类 use App\Http\Models\Sysdba; 第二步:使用 $uid = $request->input('uid'); 方法1. $model = new ...