為什么 Linux 上默認沒有 host.docker.internal

在 Linux 環境中,host.docker.internal?是?Docker 為容器提供的一個特殊 DNS 名稱,用于指向宿主機的 IP 地址(類似 macOS/Windows 中的行為)。但這個功能在 Linux 上默認不啟用,需要手動配置才能使用。以下是詳細解釋和解決方案:


1. 為什么 Linux 上默認沒有?host.docker.internal

  • 歷史原因: Docker 最初在 macOS/Windows 上通過虛擬機運行,host.docker.internal?被設計為指向宿主機。而 Linux 是原生運行 Docker 的,默認沒有此機制。

  • 網絡隔離: Linux 容器默認使用橋接網絡(bridge),與宿主機隔離,無法直接通過簡單域名訪問宿主機。


2. Linux 上如何讓容器訪問宿主機?

方法 1:直接使用宿主機 IP
  • 通過?ip route?命令獲取宿主機的 IP(通常是?docker0?網卡的網關):

    bash

    復制

    下載

    ip route show default | awk '{print $3}'

    輸出示例:

    復制

    下載

    172.17.0.1
  • 在 Dockerfile 或啟動命令中,將?host.docker.internal?替換為宿主機 IP:

    diff

    復制

    下載

    -Dskywalking.collector.backend_service=host.docker.internal:11800
    +-Dskywalking.collector.backend_service=172.17.0.1:11800
方法 2:運行時添加?--add-host?參數
  • 運行容器時,通過?--add-host?將?host.docker.internal?綁定到宿主機的網關 IP:

    bash

    復制

    下載

    docker run --add-host=host.docker.internal:host-gateway your-image
    • host-gateway?是 Docker 的保留關鍵字,自動解析為宿主機的網關 IP。

方法 3:使用?network_mode: host
  • 在 Docker Compose 或啟動命令中,將容器的網絡模式設為?host,使容器共享宿主機的網絡棧:

    yaml

    復制

    下載

    # docker-compose.yml
    services:your-service:network_mode: host
    • 優點:容器內直接使用?127.0.0.1?即可訪問宿主機服務。

    • 缺點:容器與宿主機共享網絡,可能導致端口沖突。

方法 4:自定義 Docker 網絡
  • 創建自定義網絡并指定網關:

    bash

    復制

    下載

    docker network create --driver bridge --subnet 172.25.0.0/16 my-net
  • 運行容器時加入該網絡,并通過網關 IP 訪問宿主機。

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

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

相關文章

C++GO語言微服務和服務發現②

01 創建go-micro項目-查看生成的 proto文件 02 創建go-micro項目-查看生成的main文件和handler ## 創建 micro 服務 命令:micro new --type srv test66 框架默認自帶服務發現:mdns。 使用consul服務發現: 1. 初始consul服務發現&…

Redis--常見數據類型List列表

目錄 一、概念 二、命令 2.1 LPUSH 2.2 LPUSHX 2.3 RPUSH 2.4 RPUSHX 2.5 LRANGE 2.6 LPOP 2.7 RPOP 2.8 LINDEX 2.9 LINSERT 2.10 LLEN 2.11 阻塞版本命令 三、內部編碼 一、概念 列表類型是用來存儲多個有序的字符串,列表中的每個字符串稱為元素&…

QListWedget控件使用指南

QListWedget公共函數 函數簽名功能描述QListWidget(QWidget *parent nullptr)構造函數,創建一個QListWidget對象,可指定父部件(默認為nullptr)。virtual ~QListWidget()虛析構函數,釋放QListWidget對象及其資源。voi…

Seata源碼—1.Seata分布式事務的模式簡介

大綱 1.Seata分布式事務框架簡介 2.Seata AT模式實現分布式事務的機制 3.Seata AT模式下的寫隔離機制 4.Seata AT模式下的讀隔離機制 5.官網示例說明Seata AT模式的工作機制 6.Seata TCC模式的介紹以及與AT模式區別 7.Seata Saga模式的介紹 8.單服務多個庫的分布式事務…

【Qt】之音視頻編程2:QtAV的使用篇

QtAV 基本播放控制功能實現&#xff08;C & QML&#xff09; QtAV 提供了完整的播放控制 API&#xff0c;支持 播放、暫停、停止、快進快退、截屏 等功能。以下是具體實現方法&#xff1a; 1. C 控制方式 基本播放控制 #include <QtAV> #include <QtAV/AVPlaye…

歌詞滾動效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><!-- 設置標簽頁圖標 --><link rel"shortcut icon&…

基于大模型的TIA診療全流程智能決策系統技術方案

目錄 一、多模態數據融合與預處理系統1.1 數據接入模塊1.2 數據預處理偽代碼二、TIA智能預測模型系統2.1 模型訓練流程2.2 混合模型架構偽代碼三、術中智能監測系統3.1 實時監測流程3.2 實時預測偽代碼四、智能診療決策系統4.1 手術方案推薦流程4.2 麻醉方案生成偽代碼五、預后…

Java 日期解析與格式化:從標準格式到自然語言解析

使用 Java 搭配 Apache Commons Lang3 和 Natty 庫&#xff0c;實現靈活高效的日期解析與格式化。 一、背景 將不同格式的日期統一成一個格式。日期格式可能有以下幾種類型&#xff1a; 標準格式&#xff1a;2024-02-28、14/05/2022、2002年5月6日非英文月份縮寫&#xff1a;…

Room持久化庫:從零到一的全面解析與實戰

簡介 在Android開發中,Room作為官方推薦的數據庫持久化庫,提供了對SQLite的抽象層,使得數據庫操作更加安全、高效且易于維護。 Room通過注解處理器和編譯時驗證,顯著降低了數據庫操作的復雜度,同時支持響應式編程模式,使開發者能夠輕松實現數據變化的實時監聽。對于企業…

MySQL(6)如何刪除數據庫和表?

在 MySQL 中刪除數據庫和表是常見的管理操作。下面將詳細介紹如何使用 SQL 語句以及圖形化工具來刪除數據庫和表。 步驟一&#xff1a;連接 MySQL 服務器 首先&#xff0c;連接到 MySQL 服務器&#xff0c;可以使用命令行工具 mysql 或圖形化工具如 MySQL Workbench。 使用命…

攜固態電池、新形態鋼殼疊片電池等產品 豪鵬科技將亮相CIBF 2025

攜固態電池、新形態鋼殼疊片電池等產品 豪鵬科技將亮相CIBF 2025 來源&#xff1a; 電池百人會-電池網 豪鵬科技&#xff08;展位號:14W001&#xff09;將攜固態電池、新形態鋼殼疊片電池及高安全性鈉離子電池等前沿技術產品亮相CIBF 2025&#xff0c;憑借多年的技術積累和產…

React學習———useEffect和useLayoutEffect

useEffect useEffect是React的一個Hook&#xff0c;用于在函數組件中處理副作用。副作用包括數據獲取、訂閱、手動DOM操作以及其他需要再渲染后執行的操作 基本用法 useEffect(() > {// 副作用邏輯return () > {// 可選的清理函數} }, [依賴數組])第一個參數&#xff…

“天神之眼”計算平臺的算力設計(預計500-1000 TOPS)

關于比亞迪“天神之眼”計算平臺的算力設計&#xff08;預計500-1000 TOPS&#xff09;&#xff0c;其技術路徑和行業意義值得深入探討。以下從實現方式、技術挑戰和行業影響三個維度展開分析&#xff1a; 1. 多芯片互聯的技術實現路徑 &#xff08;1&#xff09;芯片選型方案…

FPGA: Xilinx Kintex 7實現PCIe接口

在Xilinx Kintex-7系列FPGA上實現PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;接口&#xff0c;通常使用Xilinx提供的7 Series Integrated Block for PCIe IP核&#xff0c;結合Vivado設計流程。以下是實現PCIe接口的詳細步驟和關鍵點&#xff0c;適…

ArcGIS Desktop使用入門(二)常用工具條——圖形

系列文章目錄 ArcGIS Desktop使用入門&#xff08;一&#xff09;軟件初認識 ArcGIS Desktop使用入門&#xff08;二&#xff09;常用工具條——標準工具 ArcGIS Desktop使用入門&#xff08;二&#xff09;常用工具條——編輯器 ArcGIS Desktop使用入門&#xff08;二&#x…

JT/T 808 通訊協議及數據格式解析

文章目錄 一、引言二、協議數據幀結構三、消息頭結構&#xff08;Message Header&#xff09;四、常用消息類型&#xff08;Message ID&#xff09;五、典型消息體結構解析六、數據轉義規則七、校驗碼計算方法八、終端與平臺通信流程示意&#xff08;簡要&#xff09;九、平臺接…

Rust 輸出到命令行

Rust 輸出到命令行 引言 Rust 是一門系統編程語言&#xff0c;以其高性能、內存安全、并發支持和零成本抽象等特性而聞名。在開發過程中&#xff0c;將 Rust 程序的輸出傳遞到命令行是常見的需求。本文將詳細介紹 Rust 輸出到命令行的多種方法&#xff0c;幫助讀者掌握這一技…

從字符串轉換到矩陣快速冪:解決多次轉換后的長度問題

引言 在編程競賽和算法問題中&#xff0c;我們經常會遇到需要對字符串進行多次轉換的問題。本文將介紹一個有趣的問題&#xff1a;給定一個字符串和轉換規則&#xff0c;計算經過多次轉換后字符串的長度。由于直接模擬會導致性能問題&#xff0c;我們將使用矩陣快速冪來高效解…

Vue2 elementUI 二次封裝命令式表單彈框組件

需求&#xff1a;封裝一個表單彈框組件&#xff0c;彈框和表單是兩個組件&#xff0c;表單組件以插槽的形式動態傳入彈框組件中。 外部組件使用的方式如下&#xff1a; 直接上代碼&#xff1a; MyDialog.vue 彈框組件 <template><el-dialog:titletitle:visible.syn…

React Hooks:從“這什么鬼“到“真香“的奇幻之旅

寫在前面:一個讓React老手都拍案叫絕的魔法 “等等,函數組件怎么能有狀態?!” —— 這是2018年我第一次聽說React Hooks時的反應。當時我正在用class組件寫一個復雜的表單,生命周期方法亂得像一碗意大利面。直到我看到了這段代碼: function Counter() {const [count, s…