CentOS7下 讓Docker pull命令使用squid做http代理拉取目標鏡像倉庫的鏡像


場景,如下圖所示:

服務器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 443 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:3128

如此服務器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:5000/hello-world

 

 

參考地址:

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

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

(完畢)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM