(九)Docker 的網絡通信

文章目錄

    • 1、常用模式
    • 2、概念了解
      • 2.1、Docker 內容器的通信
      • 2.2、宿主機和 Docker容器的通信

1、常用模式

  • 直接使用 端口映射,宿主機:宿主機端口->容器 ip:容器端口
  • 端口映射+宿主機 hosts 映射,首先在宿主機 /etc/hosts文件中增加 宿主機 ip:容器 hostName,然后借助端口映射機制,實現宿主機 hostName->宿主機,Docker內部依靠 hostName,變向實現了宿主機網絡和容器內網絡的統一
  • 容器可以通過 host.docker.internal 訪問到宿主機

2、概念了解

2.1、Docker 內容器的通信

在Docker中,當多個容器連接到同一個自定義網絡時,它們可以通過以下兩種方式相互通信:

  • IP地址通信:每個容器在自定義網絡上都會被分配一個唯一的IP地址。你可以使用這個IP地址來讓一個容器訪問另一個容器的服務。例如,如果容器A的IP地址是172.18.0.2,那么你可以在容器B中通過這個IP地址來訪問容器A。
  • 容器名稱通信:更方便的是,你也可以直接使用容器的名稱來訪問其他容器。這是因為Docker會在自定義網絡中為每個容器設置DNS條目,使得容器名稱可以解析為該容器的IP地址。這樣,你就可以在容器B中直接通過容器A的名稱來訪問它,而無需知道其具體的IP地址。

2.2、宿主機和 Docker容器的通信

容器外部(通常指的是宿主機或者不在同一網絡橋接下的其他容器)默認情況下不能直接識別或通過IP或名稱訪問容器內的服務,除非滿足以下條件之一:

  • 端口映射(Port Mapping):
    當你啟動容器時,可以使用-p或–publish選項將容器內的端口映射到宿主機的端口。例如,如果你的容器監聽在80端口,并且你想讓它可以從宿主機外部訪問,你可以這樣做:

宿主機的8080端口的請求都會被轉發到容器內的80端口

docker run -d -p 8080:80 <image-name>
  • 自定義網絡(Custom Network):
    如果容器連接到了一個自定義網絡,并且這個網絡被配置成與宿主機網絡或其他網絡橋接,那么這些網絡上的主機可能能夠識別并訪問容器的IP地址或名稱。但是,這通常要求網絡配置允許跨網絡通信。

  • Host網絡模式(Host Networking Mode):
    使用–network=host參數啟動容器時,容器將使用宿主機的網絡堆棧,這意味著容器的服務可以直接通過宿主機的IP地址和端口訪問,但這通常不推薦用于生產環境,因為它破壞了容器的隔離性。

  • NAT路由:
    在某些情況下,宿主機上的NAT(Network Address Translation)規則可能會允許外部網絡訪問容器內的服務。這通常需要額外的網絡配置。

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

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

相關文章

Mojo: 輕量級Perl框架的魔力

在Perl的豐富生態系統中&#xff0c;Mojolicious&#xff08;簡稱Mojo&#xff09;是一個輕量級的實時Web框架&#xff0c;以其極簡的API和強大的功能而受到開發者的喜愛。Mojo不僅適用于構建高性能的Web應用&#xff0c;還可以用來編寫簡單的腳本和命令行工具。本文將帶你探索…

SSM中小學生信息管理系統 -計算機畢業設計源碼02677

摘要 隨著社會的發展和教育的進步&#xff0c;中小學生信息管理系統成為學校管理的重要工具。本論文旨在基于SSM框架&#xff0c;采用Java編程語言和MySQL數據庫&#xff0c;設計和開發一套高效、可靠的中小學生信息管理系統。中小學生信息管理系統以學生為中心&#xff0c;通過…

赤壁之戰的烽火臺 - 觀察者模式

“當烽火連三月&#xff0c;家書抵萬金&#xff1b;設計模式得其法&#xff0c;千軍如一心。” 在波瀾壯闊的三國歷史長河中&#xff0c;赤壁之戰無疑是一場改變乾坤的重要戰役。而在這場戰役中&#xff0c;一個看似簡單卻至關重要的系統發揮了巨大作用——烽火臺。這個古老的…

UNION、UNION ALL、INTERSECT、MINUS

UNION、UNION ALL、INTERSECT、MINUS&#xff1f; 說明 UNION&#xff1a;對兩個結果集進行并集操作&#xff0c;不包括重復行&#xff0c;同時進行默認規則的排序&#xff1b;IUNION ALL&#xff1a;對兩個結果集進行并集操作&#xff0c;包括重復行&#xff0c;不進行排序&am…

OpenAI的崛起:從夢想到現實

OpenAI的崛起不僅是人工智能領域的重大事件&#xff0c;也是科技史上一個引人注目的篇章。本文將深入探討OpenAI從創立到如今的演變過程&#xff0c;分析其成功的關鍵因素&#xff0c;以及未來的發展方向。 一、OpenAI的初創期&#xff1a;理想主義與混亂并存 OpenAI成立于20…

插入排序——C語言

假設我們現在有一個數組&#xff0c;對它進行排序&#xff0c;插入排序的算法如同它的名字一樣&#xff0c;就是將元素一個一個插入到合適的位置&#xff0c;那么&#xff0c;該如何做呢&#xff1f; 如果我們要從小到大進行排序的話&#xff0c;步驟如下&#xff1a; 1.對于…

區間最值問題-RQM(ST表,線段樹)

1.ST表求解 ST表的實質其實是動態規劃&#xff0c;下面是區間最小的遞歸公式&#xff0c;最大只需將min改成max即可 f[i][j] min(f[i][j - 1], f[i (1 << j - 1)][j - 1]); 二維數組的f[i][j]表示從i開始連續2*j個數的最小/大值。 例如&#xff1a;我們給出一個數組…

uniapp啟動安卓模擬器mumu

mumu模擬器下載 ADB&#xff1a; android debug bridge &#xff0c; 安卓調試橋&#xff0c;是一個多功能的命令行工具&#xff0c;他使你能夠與連接的安卓設備進行交互 # adb連接安卓模擬器 adb connect 127.0.0.1:port # 查看adb設備 adb deviceshubuilderx 有內置的adb&a…

MSPM0G3507——滴答定時器和普通定時

滴答定時器定時&#xff1a;&#xff08;放在主函數即可&#xff09; volatile unsigned int delay_times 0;//搭配滴答定時器實現的精確ms延時 void delay_ms(unsigned int ms) {delay_times ms;while( delay_times ! 0 ); } //滴答定時器中斷 void SysTick_Handler(…

Kubernets Apiserver IP 段變更后的故障處理

集群Service IP 段變更后&#xff08;從 10.96.0.0/16 變為 10.17.0.0/16&#xff09;&#xff0c;導致 kubernetes.default.svc 的ClusterIP IP &#xff08;10.96.0.1&#xff09;和段范圍不一樣&#xff0c;對于這個情況&#xff0c;需要重建該 svc。 重建方法很簡單&#…

Python28-7.4 獨立成分分析ICA分離混合音頻

獨立成分分析&#xff08;Independent Component Analysis&#xff0c;ICA&#xff09;是一種統計與計算技術&#xff0c;主要用于信號分離&#xff0c;即從多種混合信號中提取出獨立的信號源。ICA在處理盲源分離&#xff08;Blind Source Separation&#xff0c;BSS&#xff0…

運維---關于服務治理Nacos的快問快答

問題&#xff1a;在服務治理中&#xff0c;服務提供者、服務消費者和注冊中心分別承擔著怎樣的角色&#xff1f; 回答&#xff1a; 服務提供者主要負責暴露服務接口&#xff0c;以供其他服務進行調用。 服務消費者的職責是調用其他服務所提供的接口。 注冊中心則承擔著記錄…

【機器學習】(基礎篇一) —— 什么是機器學習

什么是機器學習 本系列博客為你從機器學習的介紹開始&#xff0c;使用大量的代碼實戰和驗證&#xff0c;最終幫助你完全掌握什么是機器學習 人工智能、機器學習和深度學習的關系 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;&#xff1a;是一門研…

Java多線程不會?一文解決——

方法一 新建類如MyThread繼承Thread類重寫run()方法再通過new MyThread類來新建線程通過start方法啟動新線程 案例&#xff1a; class MyThread extends Thread {public MyThread(String name) {super(name);}Overridepublic void run() {for(int i0;i<10;i){System.out.…

react dangerouslySetInnerHTML將html字符串以變量方式插入頁面,點擊后出現編輯狀態

1.插入變量 出現以下編輯狀態 2.解決 給展示富文本的標簽添加css樣式 pointerEvents: none

黑馬點評,生成1000個token到redis代碼和1k個token的文件

原來的sql文件里面就可以插入1k個用戶&#xff0c; 這個代碼是從1000個User列表里面生成1k個token到redis里面 ResourceIUserService userService;Resource private StringRedisTemplate stringRedisTemplate;Testpublic void testGetAll() {List<User> users userServ…

activemq推數據給前端的方式

文章目錄 消費者程序接收消息并通過 WebSocket 將消息傳遞給前端 消費者程序接收消息并通過 WebSocket 將消息傳遞給前端 ActiveMQ 是一個開源的消息代理服務&#xff0c;可以用來實現各種消息傳遞模式&#xff0c;包括點對點和發布/訂閱模型。要將數據從 ActiveMQ 推送到前端…

那些年背過的面試題——MySQL篇

本文是技術人面試系列 MySQL 篇&#xff0c;面試中關于 MySQL 都需要了解哪些基礎&#xff1f;一文帶你詳細了解&#xff0c;歡迎收藏&#xff01; WhyMysql&#xff1f; NoSQL 數據庫四大家族 列存儲 Hbase K-V 存儲 Redis 圖像存儲 Neo4j 文檔存儲 MongoDB 云存儲 OSS …

AI大模型的智能心臟:向量數據庫的崛起

在人工智能的飛速發展中,一個關鍵技術正悄然成為AI大模型的智能心臟——向量數據庫。它不僅是數據存儲和管理的革命性工具,更是AI技術突破的核心。隨著AI大模型在各個領域的廣泛應用,向量數據庫的重要性日益凸顯。 01 技術突破:向量數據庫的內在力量 向量數據庫以其快速檢索…