12.docker的網絡-host模式

1.docker的host網絡模式簡介

host模式下,容器將不會虛擬出自己的網卡、配置IP等,而是使用宿主機的IP和端口;也就說,宿主機的就是我的。

2. 以host網絡模式創建容器

2.1 創建容器

我們仍然以tomcat這個鏡像來說明一下。我們以host模式啟動一個容器t3:

docker run -d --network host -p 8081:8080  --name t3 donkey/tomcat8:1.0.0

在這里插入圖片描述

2.2 創建容器過程中的問題

這里我們看到兩個問題:
1.容器啟動完成后,打印的信息中有個警告信息:WARNING: Published ports are discarded when using host network mode
2.docker ps查看容器,我們指定了端口映射,但是顯示出來的信息卻沒有。

2.3 問題的分析與解釋

為了解釋這個問題,我們再啟動一個容器t4,t4我們仍然使用host網絡模式,但是我們不指定端口映射:

docker run -d --network host --name t4 donkey/tomcat8:1.0.0

在這里插入圖片描述
這時我們發現容器創建過程中并沒有出現警告信息。為什么呢?我們看host模式下,它不僅ip都使用宿主機,就連端口也使用宿主機的的。所以就不需要再設置端口映射了,我們容器暴露的端口是什么,那么就是什么端口。這里我們t3容器暴露的端口是8080,所以我們直接就能用http://127.0.0.1:8080訪問。
那現在又有一個問題,我們啟動了t3和t4兩個容器,由于來自同一個鏡像,那么容器暴露的端口就都是8080,是一樣的,這怎么辦呢?
我們看下容器t4的日志:

docker logs t4

在這里插入圖片描述
在這里插入圖片描述
非常不幸,tomcat服務啟動失敗了,端口被占用了。

3. 以host網絡模式下,容器和宿主機網絡情況

3.1 大膽猜測

我認為宿主機和容器的網絡情況是一模一樣的。

3.2 宿主機的網絡情況

在這里插入圖片描述
沒有看到之前成對出現的網卡,只有一個docker0和宿主機本身的網絡信息。

3.3 容器的網絡情況

ker exec -it t4 /bin/bash		

在這里插入圖片描述

3.4 結論

不出所料,宿主機和容器的網路情況是一樣的。

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

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

相關文章

QSplitter分裂器

QSplitter QSplitter 是 Qt 框架提供的一個小部件(widget),用于在用戶界面中創建可拖動的分割窗口,允許用戶調整子部件的大小和布局。它可以將父部件分割為多個可調整大小的子部件,使用戶能夠自定義界面的布局和大小。…

2024年跨境電商黃金賽道預測來了!跨境電商首選平臺和品類有哪些?

跨境電商作為外貿新常態,在2023年已逐漸進入穩定增長的發展階段,想必2024年跨境電商也會是一個向好的發展趨勢,2024年做跨境電商,找準適合自己的電商平臺和產品是成功的關鍵,今天東哥就對2024年的跨境電商黃金賽道做一…

Kotlin中 for in 是有序的嗎?forEach呢?

我們要遍歷一個數組、一個列表,經常會用到kotlin的 for in 語法,但是 for in 是不是有序的呢?forEach是不是有序的呢?這就需要看一下它們的本質了。 數組的 for in // 調用: val arr arrayOf(1, 2, 3) for (ele in …

安卓現代化開發系列——從生命周期到Lifecycle

由于安卓已經誕生快二十載,其最初的開發思想與現代的開發思想已經大相徑庭,特別是Jetpack庫誕生之后,項目中存在著新老思想混雜的情況,讓許多的新手老手都措手不及,項目大步向屎山邁進。為了解決這個問題,開…

P6 C++控制流語句(continue, break, return)

前言 今天我們講的是控制流語句,本期內容是上期課程的延續。 控制流語句一般與循環語句一起工作,它們讓我們可以更好的控制這些循環的實際運行。 我們有三個主要的控制流語句可以使用,continue 、break 和 return,它們有不同的…

Python 訂閱 image_transport 壓縮后的深度圖 compressedDepth

image_transport 是ros的一個圖像處理工具,可以很方便地進行圖像數據的壓縮,可惜它目前并不支持python 當你如下安裝了image_transport及其plugin后 sudo apt install ros-foxy-image-transport*運行 ros2 run image_transport list_transports可看到如下內容 Declared tr…

打印樓梯,同時在樓梯上方打印兩個笑臉。

#include<stdio.h> int main() { int i,j; printf("\1\1\n"); /*輸出兩個笑臉*/ for(i1;i<11;i) { for(j1;j<i;j) printf("%c%c",219,219); printf("\n"); } return 0; }

【C++】POCO學習總結(五):功能介紹

【C】郭老二博文之&#xff1a;C目錄 1、POCO 簡介 github&#xff1a;https://github.com/pocoproject/poco 官網&#xff1a;https://pocoproject.org/index.html POCO第一個版本于 2005 年 2 月發布 POCO完全免費&#xff1a;POCO C 庫根據 Boost 軟件許可證獲得許可。非…

QMI8658A(6軸)-EVB 評估板-使用說明書

QMI8658A6<6軸>-EVB 評估板-使用說明書 0.前言 1.硬件準備 1.1 I2C 接口 1.2 USART 接口 1.3 引腳序號功能定義 2.程序運行 0.前言 【相關博文】 【QMI8658 - 姿態傳感器學習筆記 - Ⅰ】 【QMI8658 - 姿態傳感器學習筆記 - Ⅱ】 【QMI8658 - 姿態傳感器學習…

基于單片機的光伏發電并網系統設計(論文+源碼)

1.系統設計 片作為主控制器。由于太陽能板本身的能量輸出受到負載影響&#xff0c;因此需要在太陽能板后面加入一級DC/DC電路&#xff0c;來實現最大功率跟蹤&#xff0c;以提高整個系統的效率。接著&#xff0c;由于光伏逆變器需要產生220V的交流電給居民使用&#xff0c;因此…

[MySQL] MySQL 表的增刪查改

本篇文章對mysql表的增刪查改進行了詳細的舉例說明解釋。對表的增刪查改簡稱CRUD : Create(創建), Retrieve(讀取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;刪除&#xff09;。其中重點是對查詢select語句進行了詳細解釋&#xff0c;并且通過多個實際例子來幫助…

香港科技大學廣州|先進材料學域博士招生宣講會—華中科技大學大學專場!!!(暨全額獎學金政策)

“跨學科融合創新&#xff0c;引領新興與未來行業的突破與發展——先進材料學域” 世界一流的新型可持續材料創新研究 夯實的先進材料領域國際學術影響力 教授親臨現場&#xff0c;面對面答疑解惑助攻申請&#xff01; 一經錄取&#xff0c;享全額獎學金1.5萬/月&#xff01; …

【性能優化】JVM調優與寫出JVM友好高效的代碼

&#x1f4eb;作者簡介&#xff1a;小明java問道之路&#xff0c;2022年度博客之星全國TOP3&#xff0c;專注于后端、中間件、計算機底層、架構設計演進與穩定性建設優化&#xff0c;文章內容兼具廣度、深度、大廠技術方案&#xff0c;對待技術喜歡推理加驗證&#xff0c;就職于…

面試:Kafka相關問題

文章目錄 簡單介紹kafkakafka應用場景為什么需要zookeeperZookeeper 對于 Kafka 的作用是什么&#xff1f;kafka高效的原因kafka的特點kafka的核心組成Kafka中的Topic和Partition有什么關系&#xff1f;Kafka的消費消息是如何傳遞的&#xff1f;Kafka 的多副本機制了解嗎&#…

STM32:基本定時器原理和定時程序

一、初識定時器TIM 定時器就是計數器&#xff0c;定時器的作用就是設置一個時間&#xff0c;然后時間到后就會通過中斷等方式通知STM32執行某些程序。定時器除了可以實現普通的定時功能&#xff0c;還可以實現捕獲脈沖寬度&#xff0c;計算PWM占空比&#xff0c;輸出PWM波形&am…

Vue3 + Vite + TSX + vue3-ace-editor 踩坑

前言 由于 ace-editor 官網并沒有提供各個前端框架Vue&#xff0c;React&#xff0c;Angular的直接使用的適配版本&#xff0c; 所以本次使用的vue3-ace-editor 是個人開源者維護的版本&#xff0c;原生是支持 SFC 模版用的&#xff0c;由于我這里習慣使用 JSX 或 TSX的方式&a…

【03】ES6:解構賦值

一、數組的解構賦值 ES6 允許按照一定模式&#xff0c;從數組和對象中提取值&#xff0c;對變量進行賦值&#xff0c;這被稱為解構&#xff08;Destructuring&#xff09;。 1、基本使用 遵循 “模式匹配” &#xff0c;索引值相同的完成賦值 // 為變量賦值&#xff0c;只能…

Centos7 Python環境和yum修復

1、刪除現有殘余包 [rootlocalhost ]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# whereis python |xargs rm -frv[rootlocalhost ]# whereis python ##驗證清除&…

mybatis注解方式動態標簽時有特殊符號,出現元素內容必須由格式正確的字符數據或標記組成

原始代碼demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);現需求改為nage可以為空&#xff0c;因此使用了動態拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

SWT/Jface(2): 表格的編輯

前言 上節說到, 創建和渲染表格需要如下幾個步驟: 接收源數據數組(也可以是單個對象或者其他集合類型): TableViewer.setInput(Object)渲染接收的數據 渲染表頭: TableViewer.setLabelProvider(IBaseLabelProvider)渲染內容: TableViewer.setContentProvider(IContentProvide…