Docker拉取鏡像代理配置實踐與經驗分享

Docker拉取鏡像代理配置實踐與經驗分享

一、背景概述

在企業內網環境中,我們部署了多臺用于測試與學習的服務器。近期,接到領導安排,需在其中一臺服務器上通過Docker安裝n8n應用程序。然而在實際操作過程中,遭遇Docker官方鏡像庫無法訪問的問題,導致鏡像拉取失敗。經排查發現,由于網絡限制,需借助代理服務器才能訪問鏡像庫。

雖然我的工作機已配置代理,但代理服務僅監聽127.0.0.1本地IP地址,無法直接被內網服務器調用。面對這一挑戰,我決定采用socat工具進行端口轉發,以實現內網服務器通過工作機代理訪問鏡像庫的目標。

二、技術實現步驟

(一)端口轉發配置

使用socat工具將工作機上的代理端口轉發至可被內網服務器訪問的端口。執行以下命令:

socat TCP-LISTEN:8890,fork TCP:127.0.0.1:7890

上述命令中,TCP-LISTEN:8890表示在工作機上監聽8890端口,fork參數允許socat創建子進程以處理多個連接請求;TCP:127.0.0.1:7890則指定將接收到的數據轉發至本地監聽的7890代理端口。

(二)Docker代理配置修改

  1. 定位Docker服務配置文件
    通過以下命令查看Docker服務狀態,從而獲取docker.service文件路徑:
sudo systemctl status docker

執行命令后,可在輸出信息中找到docker.service文件位置(如下圖所示)。

  1. 編輯配置文件
    打開docker.service文件,在[Service]字段下添加以下環境變量配置:
# 代理配置
Environment="HTTP_PROXY=http://192.168.31.99:8890"
Environment="HTTPS_PROXY=http://192.168.31.99:8890"
Environment="NO_PROXY=localhost,127.0.0.1,10.*,172.*"

其中,192.168.31.99為工作機的IP地址,8890即前文通過socat轉發的端口。NO_PROXY指定了無需通過代理訪問的本地及內網地址段。

  1. 重啟Docker服務
    完成配置修改后,依次執行以下命令使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker

至此,內網服務器即可通過工作機代理正常拉取Docker鏡像。

三、技術延伸與工具對比

在日常網絡調試工作中,我常用的網絡工具包括netcatcurl。相較于netcat,本次使用的socat功能更為強大,不僅支持TCP、UDP等多種協議,還具備數據轉發、端口映射、協議轉換等高級功能。不過,其命令參數相對復雜,學習成本較高。

以實際項目為例,我在一項目中引入打印模版設計功能時,我使用的是macos系統,由于打印插件僅支持Windows系統,且需通過HTTP請求觸發打印操作。為實現跨平臺調試,我利用socat將本地服務發送至localhost的數據轉發至安裝有打印插件的Windows機器,成功解決了不同系統間的通信問題。這種靈活的數據轉發能力,正是socat在復雜網絡場景下的獨特價值體現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78188.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78188.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78188.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數字圖像處理】立體視覺基礎(1)

成像 成像過程:三維空間坐標到二維圖像坐標的變換 相機矩陣:建立三維到二維的投影關系 相機的使用步驟(模型-視圖變換): (1)視圖變換 (2)模型變換 (3&…

實驗4:列表與字典應用

目的 :熟練操作組合數據類型。 試驗任務: 1. 基礎:生日悖論分析。如果一個房間有23人或以上,那么至少有兩個人的生日相同的概率大于50%。編寫程序,輸出在不同隨機樣本數量下,23 個人中至少兩個人生日相同的…

c++之網絡編程

網絡編程:使得計算機程序能夠在網絡中發送和接受數據,從而實現分布式系統和網絡服務的功能。 作用:使應用程序能夠通過網絡協議與其他計算機程序進行數據交換 基本概念 套接字(socket): 套接字是網絡通信…

【Harmony_Bug】forEach + asyncawait 的異步陷阱

一、問題描述 今天在做一個RDB的小項目時,遇到一個問題,因為沒報錯其實也是不算是BUG,以下描述時我就直接說關鍵點,其他代碼忽略。 我的數據模型初始化有六條數據如圖 在持久化層,通過initUserData這個方法執行插入。…

大腸桿菌誘導蛋白時OD600=0.6-0.8添加IPTG的思考-實驗操作系列-009

一、為什么用OD600表示菌液濃度? 1. 光密度與吸光值的關系 OD600是指在600納米波長下的光密度(Optical Density),也就是通過細菌懸浮液的光的吸收程度。根據比爾-朗伯定律,光密度與溶液中光學活性物質(如…

OpenHarmony - 小型系統內核(LiteOS-A)(十),魔法鍵使用方法,用戶態異常信息說明

OpenHarmony - 小型系統內核(LiteOS-A)(十) 十四、魔法鍵使用方法 使用場景 在系統運行出現無響應等情況時,可以通過魔法鍵功能確定系統是否被鎖中斷(魔法鍵也無響應)或者查看系統任務運行狀態…

CUDA編程之Grid、Block、Thread線程模型

一、線程模型:Grid、Block、Thread概念 ?1. 層級定義? ?Thread(線程)? CUDA中最基本的執行單元,對應GPU的單個CUDA核心(SP)。每個線程獨立執行核函數指令,擁有獨立的寄存器和局部內存空間?。 ?Block(線程塊)? 由多個線程組成(通常為32的倍數),是邏輯上的并…

實戰交易策略 篇十九:君山居士熊市交易策略

文章目錄 系列文章熊市三大特征熊市操作思維強勢重勢,弱勢重質搶反彈重要前提和五大原則反彈逃頂操盤其他炒股的至高境界力戒“三進三出”八大心理誤區八大戒律股市不敗之法系列文章 實戰交易策略 篇一:奧利弗瓦萊士短線交易策略 實戰交易策略 篇二:杰西利弗莫爾股票大作手…

Flutter IOS 真機 Widget 錯誤。Widget 安裝后系統中沒有

錯誤信息: SendProcessControlEvent:toPid: encountered an error: Error Domaincom.apple.dt.deviceprocesscontrolservice Code8 "Failed to show Widget com.xxx.xxx.ServerStatus error: Error DomainFBSOpenApplicationServiceErrorDomain Code1 "T…

【計算機視覺】CV實戰項目 - 深入解析基于HOG+SVM的行人檢測系統:Pedestrian Detection

深入解析基于HOGSVM的行人檢測系統:從理論到實踐 技術核心:HOGSVM檢測框架HOG特征原理SVM分類器 項目架構與數據準備INRIA Person數據集目錄結構 實戰指南:從零構建檢測系統環境配置完整訓練流程檢測應用 關鍵技術問題與解決方案1. 難例挖掘不…

day01_編程語言介紹丶Java語言概述丶開發環境搭建丶常用DOS命令

編程語言介紹 ?編程語言是一種用于人與計算機之間通信的語言,允許程序員編寫代碼,這些代碼告訴計算機要執行哪些操作?。編程語言可以被視為計算機可以理解并執行的指令集合,它是一種標準化的交流技巧,用于向計算機發出指令。?…

告別默認配置!Xray自定義POC開發指南

文章涉及操作均為測試環境,未授權時切勿對真實業務系統進行測試! 下載與解壓 官網地址: Xray GitHub Releases 根據系統選擇對應版本: Windows:xray_windows_amd64.exe.zipLinux:xray_linux_amd64.zipmacOS:xray_darwin_amd64.zip解壓后得到可執行文件(如 xray_linux_…

C語言編程--17.有效的括號

題目: 給定一個只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序…

代碼隨想錄算法訓練營第60期第十七天打卡

今天我們繼續進入二叉樹的下一個章節,今天的內容我在寫今天的博客前大致看了一下部分題目難度不算大,那我們就進入今天的題目。 第一題對應力扣編號為654的題目最大二叉樹 這道題目的坑相當多,我第一次題目沒有看明白就是我不知道到底是如何…

Burp靶場JWT學習筆記1

JWT(JSON Web Token) 從其名字就可以看出來,它具有表示身份的作用,其本質是將用戶信息儲存到一串json字符串中再將其編碼得到一串token JWT由三部分組成,分別是 Header,Payload,Signatrue JWTBase64(Header).Base6…

第53.5講 | 小項目實戰:用 SHAP 值解釋農作物產量預測模型 [特殊字符][特殊字符]

目錄 ? 項目背景 📦 所用工具 📁 數據字段(模擬) 🧑?💻 代碼實現步驟 🎯 解讀與啟發 🧠 項目拓展建議 ? 項目背景 我們使用一個簡化的玉米產量數據集(可模擬實…

極狐GitLab 合并請求依賴如何解決?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 合并請求依賴 (PREMIUM ALL) 在極狐GitLab 16.6 中引入了對復雜合并依賴關系的支持,通過名為 remove_mr_blockin…

Django DRF實現用戶數據權限控制

在 Django DRF 中使用 ModelViewSet 時,若需實現用戶僅能查看和操作自己的數據詳情,同時允許所有認證用戶訪問列表,需結合權限類和動態權限分配。以下是具體步驟: 1. 自定義對象權限類 創建一個 IsOwner 權限類,檢查…

【數據結構】——線性表之單鏈表

一、單鏈表的概念和結構 1、單鏈表的概念: 鏈表也是屬于我們的線性表中的一種,其物理結構上是不一定連續的,但是邏輯結構上是一定連續的,所以其是沒辦法像前面的順序表一樣通過找到下一個元素的,其是通過指針來找到下…

線程函數庫

pthread_create函數 pthread_create 是 POSIX 線程庫&#xff08;pthread&#xff09;中的一個函數&#xff0c;用于創建一個新的線程。 頭文件 #include <pthread.h> 函數原型 int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*s…