Docker配置HTTP/HTTPS代理的方法
起因
我在使用Docker的pull
命令拉取ELK官方提供的鏡像時,會出現(xiàn)無法連接的情況,并且會出現(xiàn)TLS handshake timeout
的錯誤。在搜索相關(guān)文章之后得出結(jié)論:國內(nèi)的網(wǎng)絡(luò)環(huán)境不好,導(dǎo)致連接docker.elastic.co
失敗或無法連接。于是我第一時間想到了代理的方式,好在Docker支持設(shè)置代理來訪問其他Registry,下面記錄整個配置過程。
準(zhǔn)備工作
首先,你的機(jī)器上需要安裝好Docker,當(dāng)我寫這篇文章時,Docker的版本為18.03,對于后續(xù)版本,本文章的配置方法可能會失效。
此外,還需要準(zhǔn)備一個代理服務(wù)器,可以正常訪問境外網(wǎng)站(如:Google,YouTuBe等)。我用的是VPS搭建的Shadowsocks代理,本機(jī)Shadowsocks客戶端開啟之后可以直接通過http://127.0.0.1:1080/訪問境外網(wǎng)站。
假設(shè)你的環(huán)境也是Ubuntu(其他環(huán)境應(yīng)該也是類似的)。
開始配置
1、創(chuàng)建如下路徑的目錄
sudo mkdir -p /etc/systemd/system/docker.service.d
2、進(jìn)入到上一步創(chuàng)建的目錄下,并在該目錄下創(chuàng)建一個名為http-proxy.conf的文件(如:/etc/systemd/system/docker.service.d/http-proxy.conf),使用vim編輯文件內(nèi)容如下
[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服務(wù)
sudo systemctl restart docker
5、查看配置
systemctl show --property=Environment docker
出現(xiàn)如下信息表示配置成功:
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鏡像,此時已經(jīng)可以正常連接了,只是速度較慢。
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上拉取鏡像時,由于網(wǎng)絡(luò)原因無法連接。如果從Docker官方的鏡像倉庫中拉取鏡像時,一種比較好的辦法就是配置registry-mirrors實現(xiàn)加速,具體方法請自行搜索。
上述步驟是來自Docker官方文檔中的部分,原文地址為Control Docker with systemd。
如果你在配置過程遇到問題,歡迎在留言討論。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker容器通過ping直接運(yùn)行獲取公網(wǎng)IP操作
這篇文章主要介紹了docker容器通過ping直接運(yùn)行獲取公網(wǎng)IP操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker配置MySql環(huán)境的實現(xiàn)步驟
通過使用Docker,開發(fā)人員可以更容易地構(gòu)建、測試和交付應(yīng)用程序,同時減少了環(huán)境配置和依賴項管理的復(fù)雜性,本文主要介紹了Docker配置MySql環(huán)境的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),感興趣的可以了解一下2024-02-02docker映射端口穿透內(nèi)置防火墻的實現(xiàn)
在使用Docker部署項目時,即使未開啟CentOS7的Firewalld防火墻,端口仍可被外網(wǎng)訪問,這是因為Docker在安裝后會接管iptables,并自動添加規(guī)則以放行指定端口,解決方法包括依賴外置防火墻放行端口、指定端口監(jiān)聽地址為本機(jī)、禁用Docker的iptables規(guī)則修改2024-10-10淺談docker Dockerfile 指令 VOLUME 介紹
本篇文章主要介紹了淺談docker Dockerfile 指令 VOLUME 介紹 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02docker logs-查看docker容器日志的實現(xiàn)
這篇文章主要介紹了docker logs-查看docker容器日志的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Docker安裝配置Oracle詳細(xì)步驟記錄(以作持久化處理)
docker是一個用Go語言實現(xiàn)的開源項目,可以讓我們方便的創(chuàng)建和使用容器,下面這篇文章主要給大家介紹了關(guān)于Docker安裝配置Oracle詳細(xì)步驟的相關(guān)資料,需要的朋友可以參考下2024-03-03