亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker從容器中訪問到宿主機(jī)3種方法

 更新時(shí)間:2023年10月13日 11:28:48   作者:無水先生  
這篇文章主要給大家介紹了關(guān)于docker從容器中訪問到宿主機(jī)的3種方法,某些時(shí)候,我們會(huì)有在容器內(nèi)容訪問宿主機(jī)某個(gè)服務(wù)的需求,需要的朋友可以參考下

一、說明

使用 Docker 能實(shí)現(xiàn)服務(wù)的容器化,并使用容器間網(wǎng)絡(luò)在它們之間進(jìn)行通信。有時(shí)您可能需要一個(gè)容器來與宿主機(jī)上非容器化的服務(wù)通信。以下是如何從 Docker 容器中訪問本地主機(jī)或 127.0.0.1的具體方法。

二、方法1:簡單的選擇

適用于 Windows 和 Mac 的 Docker Desktop 18.03+ 支持 host.docker.internal 作為 localhost 的功能別名。在您的容器中使用此字符串來訪問您的主機(jī)。注意,這里區(qū)分實(shí)體的辦法

指定通信個(gè)體別名
解釋成容器localhost或127.0.0.1 
解釋成主機(jī)host.docker.internal 

比如,您在主機(jī)上運(yùn)行 MySQL 服務(wù)器,Docker 容器可以通過網(wǎng)絡(luò)訪問連接到主機(jī)的mysql 具體名為host.docker.internal:3306 。當(dāng)您在 Windows 或 Mac 計(jì)算機(jī)上工作時(shí),這是最簡單的技術(shù)。

Linux 上的 Docker 引擎用戶也可以通過 docker run 的 --add-host 標(biāo)志啟用主機(jī)的默認(rèn)名稱 host.docker.internal。使用此標(biāo)志啟動(dòng)容器以公開主機(jī)字符串:       

 docker run -d --add-host host.docker.internal:host-gateway my-container:latest

--add-host 標(biāo)志向容器的 /etc/hosts 文件添加一個(gè)條目。上面顯示的值將 host.docker.internal 映射到容器的主機(jī)網(wǎng)關(guān),這與真實(shí)的 localhost 值相匹配。如果您愿意,可以用您的主機(jī)真實(shí)名稱替換 host.docker.internal 。

三、方法2:連接到主機(jī)網(wǎng)絡(luò)

Docker 提供了一個(gè)主機(jī)網(wǎng)絡(luò),讓容器可以共享主機(jī)的網(wǎng)絡(luò)堆棧。這種方法意味著容器內(nèi)的本地主機(jī)解析為物理主機(jī),而不是容器本身。

通過添加 --network=host 標(biāo)志與主機(jī)網(wǎng)絡(luò)一起啟動(dòng)容器:

    docker run -d --network=host my-container:latest

現(xiàn)在您的容器可以直接引用本地主機(jī)或 127.0.0.1。

如果您使用的是 Docker Compose,請修改容器的服務(wù)定義以包含 network_mode 字段:

services:
  my-service:
    network_mode: host

這種方法有幾個(gè)注意事項(xiàng)。在使用它之前考慮所有的影響很重要。容器通常會(huì)獲得自己的私有網(wǎng)絡(luò),該網(wǎng)絡(luò)獨(dú)立于主機(jī)的堆棧。來自主機(jī)的設(shè)置。

容器公開的任何端口都將在主機(jī)上公開,即使它們沒有使用 -p 標(biāo)志明確聲明。

主機(jī)網(wǎng)絡(luò)可能是一個(gè)安全問題,它打破了 Docker 容器的隔離模型。在您確信正在運(yùn)行的容器不會(huì)相互沖突或?qū)е轮鳈C(jī)環(huán)境出現(xiàn)問題的情況下,它仍然很有用。主機(jī)網(wǎng)絡(luò)模式也比默認(rèn)橋接模式更快,因?yàn)闆]有供流量通過的虛擬化層。

四、方法3:使用默認(rèn)橋接模式訪問主機(jī)

您的主機(jī)仍然可以在默認(rèn)橋接網(wǎng)絡(luò)模式下從容器訪問。您只需要通過其 Docker 網(wǎng)絡(luò) IP 引用它,而不是 localhost 或 127.0.0.1。

大多數(shù) Docker 引擎安裝會(huì)將主機(jī)表示為默認(rèn) docker0 橋接網(wǎng)絡(luò)上的 172.17.0.1。您可以通過在主機(jī)上運(yùn)行以下命令來檢查自己的 IP:

ip addr show docker0

您的主機(jī)的 Docker IP 將顯示在 inet 行上。從您的容器中連接到此 IP 地址以成功訪問在您的主機(jī)上運(yùn)行的服務(wù)。

這種方法的一個(gè)缺陷是您可能無法連接到直接綁定到本地主機(jī)的服務(wù)。您會(huì)在容器中看到連接被拒絕或類似錯(cuò)誤。

五、總結(jié)

當(dāng)您需要從 Docker 容器外部訪問機(jī)器的本地主機(jī)時(shí),您有多種選擇。如果您使用的是 Windows 或 Mac,最好使用內(nèi)置的 host.docker.internal 別名。Linux 用戶可以設(shè)置類似的東西在啟動(dòng)容器時(shí)使用 --add-hostflag。

主機(jī)網(wǎng)絡(luò)模式是一種通用的替代方案,它允許容器共享主機(jī)的網(wǎng)絡(luò)堆棧。您可以直接引用本地主機(jī),但需要了解風(fēng)險(xiǎn)和限制。當(dāng)需要強(qiáng)大的網(wǎng)絡(luò)隔離時(shí),這不是一個(gè)合適的選擇。

堅(jiān)持使用橋接模式可能是支持它的工作負(fù)載的最佳選擇。將主機(jī)的服務(wù)綁定到它的 Docker IP,然后使用該地址從容器內(nèi)部進(jìn)行連接。這使您可以使用 Docker 的每個(gè)容器虛擬化網(wǎng)絡(luò),同時(shí)提供一個(gè)路由到你的主機(jī)在需要的時(shí)候。

到此這篇關(guān)于docker從容器中訪問到宿主機(jī)3種方法的文章就介紹到這了,更多相關(guān)docker容器訪問宿主機(jī)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Docker Swarm概念與用法

    詳解Docker Swarm概念與用法

    這篇文章主要介紹了Docker Swarm概念與用法,幫助大家更好的理解和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • 基于Docker的幾種常用CentOS7鏡像小結(jié)

    基于Docker的幾種常用CentOS7鏡像小結(jié)

    本文主要介紹了使用 Docker 來制作CentOS 環(huán)境的鏡像,并上傳到阿里云的 Docker 鏡像倉庫,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-11-11
  • Docker安裝Jenkins-2.249.3-1.1的詳細(xì)過程

    Docker安裝Jenkins-2.249.3-1.1的詳細(xì)過程

    這篇文章主要介紹了Docker安裝Jenkins-2.249.3-1.1,通過編寫docke安裝腳本來實(shí)現(xiàn)安裝目的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)

    淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)

    本篇文章主要介紹了淺談Docker 容器數(shù)據(jù)卷掛載小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • 將普通用戶加入Docker組,使用docker問題

    將普通用戶加入Docker組,使用docker問題

    這篇文章主要介紹了將普通用戶加入Docker組,使用docker問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 教你如何通過?SSH?連接到?Docker?容器

    教你如何通過?SSH?連接到?Docker?容器

    如何通過?SSH?連接到正在運(yùn)行的容器,以及為什么在這樣做之前應(yīng)該三思而后行,對(duì)如何通過SSH連接到Docker容器相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • docker 中配置 eureka的方法

    docker 中配置 eureka的方法

    這篇文章主要介紹了docker 中配置 eureka的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • docker如何查詢指定名字的容器id

    docker如何查詢指定名字的容器id

    要查詢指定名字的Docker容器ID,可以使用命令 docker ps -a --filter "name=CONTAINER_NAME" -q,該命令將返回指定名稱的容器ID,如果存在多個(gè)相同名稱的容器,則返回所有這些容器的ID
    2025-03-03
  • docker: invalid reference format.問題

    docker: invalid reference format.問題

    這篇文章主要介紹了docker: invalid reference format.問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 帶你快速了解Docker和k8s的使用及說明

    帶你快速了解Docker和k8s的使用及說明

    這篇文章主要介紹了帶你快速了解Docker和k8s的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評(píng)論