Docker系統六:Docker網絡管理

Docker網絡

I. Docer的通信方式

默認情況下,Docker使用網橋(brige)+ NAT的通信模型.
Docker啟動時會自動創建網橋Docker0,并配置ip 172.17.0.1/16

ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 02:42:e0:31:ac:10inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:1846 errors:0 dropped:0 overruns:0 frame:0TX packets:5562 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:168242 (168.2 KB)  TX bytes:23550976 (23.5 MB)

Docker容器內容及容器與宿主機通信方式(Brige方式)

當Docker啟動容器時,會創建一對veth虛擬網絡設備:

  • 一個附加到網橋上;
  • 一個加入容器的網張命名空間并被改名為eth0

Docker容器與外部網張通信(NAT方式)

1)容器訪問外網

Docker通過創建如下MASQUERADE規則進行外部網絡訪問:

iptables -t nat -A POSTROUTING -s 172.17.0.0/16 !-o docker0 -j MASQUERADE

規則說明:獎所有從容器(172.17.0.0/16)發往外網的包的源地址都改為Host(宿主機)的IP。

2)外網訪問容器

當容器提供的服務需要暴露給外部網絡里,Docker啟動容器里,會創建SNAT規則。eg,啟動一個apache容器:

docker run -d -p 80:80 apache

在上述命令背后其實會創建如下SNAT規則:

iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
iptables -t nat -A DOCKER !-i docker0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.17.0.2:80

II. Docker的網絡配置

Docker中很多網絡相關的參數主是有:

  • Docker進程本身的,影響所有docker容器;
  • Docker容器相關的,只影響當前容器;

1. 網絡配置參數

1)Docker進程的網絡配置

相關參數如下:

-b, --bridge="" ;//指定Docker使用的網絡設備。默認下,Docker會創建docker0網橋設備,通過該參數可以指定Docker使用已存在的網橋設備--bip=""   ;//指定網橋設備的docker0的IP和掩碼,使用標準的CIDR形式,如192.168.1.5/24--dns=[]  ;//強制docker使用指定的DNS servers--dns-search=[] ;//強制docker使用指定的DNS search domains--icc=true  ;//打開inter-container溝通--ip="0.0.0.0" ;//綁定容器端口時的默認IP--ip-forward=true ;//打開 net.ipv4.ip_forward--iptables=true; //打開docker的iptables rules增加--mtu=0;        //設置容器的網絡MTU,如果沒有設置任何值則默認route MTU ,當默認路由不存在時,使用1500

Note:

--dns/--dns-search: 配置容器的DNS,改參數可以在啟動Docker進程時指定(成為所有容器的默認值),也可以在啟動容器(docker run)時指定(覆蓋默認值)。
2)容器的網絡配置

下面是docker run時的一些網絡配置參數:

--net="bridge" //用于指定容器使用的網絡通信方式;

它有如下四個值:

  • bridge : Docker容器的默認通信方式;
  • none : 容器沒有網絡棧,此時容器無法與外界通信;
  • container:<name|id> : 使用其他容器(name或id)的網絡棧。實際上,Docker會將該容器加到指定的容器network namespace, 這是一種非常有用的方式。
  • host : 表示容器使用Host的網絡,沒有自己獨立的網絡棧。實際上,在這種情況下,Docker不會給容器創建單獨的網絡名字空間(newwork namespace).由于容器可以完全訪問Host的網絡,所以此方式也是不安全的。

2. 配置DNS

一般來說每個容器的hostname和DNS配置信息是不同的,我們不可能為每個容器都構建一個鏡像,并在鏡像中指定這些信息。實際上,Docker在啟動容器時,會使用bind mount動態掛載/etc/hostname,/etc/hosts,/etc/resolv.conf幾個文件,覆蓋鏡像中原來的文件。通過如下命令我們可以在容器內看到這個信息:

docker exec -it {容器} /bin/bash
mount/dev/vda1 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/vda1 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/vda1 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered)

所以,我們可以通過命令行參數在啟動Doker時指定DNS

3. Docker網絡相關的一些參考

  • 關于docker網絡的概念:理解Docker容器網絡之Linux Network Namespace

  • 關于源地址和目地地址的轉換關系:iptables中DNAT、SNAT和MASQUERADE的理解

  • Docker相關的網絡詳解:Docker網絡詳解

  • iptables命令詳解:iptables命令詳解

轉載于:https://www.cnblogs.com/Terry-Wu/p/7461453.html

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

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

相關文章

pthread_cond_wait

1. 首先pthread_cond_wait 的定義是這樣的 The pthread_cond_wait() andpthread_cond_timedwait() functions are used to block on a condition variable. They are called withmutex locked by the calling thread or undefined behaviour will result. These functions ato…

HDU 1525 Euclid's Game

題目大意&#xff1a; 題目給出了兩個正數a.b 每次操作&#xff0c;大的數減掉小的數的整數倍。一個數變為0 的時候結束。 誰先先把其中一個數減為0的獲勝。問誰可以贏。Stan是先手。 題目思路&#xff1a; 無論a,b的值為多少&#xff0c;局面&#xff1a;[a%b&#xff0c;b] 一…

SRAM BIST技術學習

MBIST 方法是目前大容量存儲器測試的主流技術&#xff0c;該技術利用芯片內部專門設計的BIST 電路進行自動化測試&#xff0c;能夠對嵌入式存儲器這種具有復雜電路結構的嵌入式模塊進行全面的測試。MBIST 電路將產生測試向量的電路模塊以及檢測測試結果的比較模塊都置于芯片的內…

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理

【Zigbee技術入門教程-02】一圖讀懂ZStack協議棧的核心思想與工作機理 廣東職業技術學院 歐浩源 Z-Stack協議棧是一個基于任務輪詢方式的操作系統&#xff0c;其任務調度和資源分配由操作系統抽象層OSAL管理著。 你可以理解為&#xff1a;Z-Stack協議棧 OSAL操作系統 CC25…

CMOS圖像傳感器——SmartSens

近年來CIS發展成為增量市場,國產CIS廠商也踴躍布局,給業界帶來許多驚喜。思特威(上海)電子科技股份有限公司(SmartSens)正是國產CIS中亮眼的一家廠商。數據顯示,2020年思特威安防監控市場的CIS芯片出貨量為1.46億顆,繼續位居全球出貨量TOP1的位置;同年,思特威的新興領…

Servlet第二篇【Servlet調用圖、Servlet細節、ServletConfig、ServletContext】

Servlet的調用圖 前面我們已經學過了Servlet的生命周期了&#xff0c;我們根據Servlet的生命周期畫出Servlet的調用圖加深理解 Servlet的細節 一個已經注冊的Servlet可以被多次映射 同一個Servlet可以被映射到多個URL上。 <servlet><servlet-name>Demo1</servle…

vue響應式原理

vue響應式原理 initState new Vue() > _init() > initState: function initState (vm: Component) {vm._watchers []const opts vm.$optionsif (opts.props) initProps(vm, opts.props)if (opts.methods) initMethods(vm, opts.methods)if (opts.data) {initData(vm)} …

Oracle數據庫管理與開發pdf

下載地址&#xff1a;網盤下載基本介紹編輯內容簡介Oracle是一個適合于大中型企事業的數據庫管理系統&#xff0c;在銀行、電信、移動通信、航空、保險、金融、氣象、鐵路、跨國公司和電子商務等諸多領域得到了廣泛的應用。據統計&#xff0c;在所有數據庫管理系統中&#xff0…

DVS/DVR區別

一、DVS &#xff08;Digital Video Server&#xff09;網絡視頻服務器的簡稱。DVS(網絡視頻服務器)的原理網絡視頻服務器主要實現模擬視音頻信號的IP 化。經數字化的視音頻信號MPEG-4 視頻壓縮算法和G.729/ADPCM 音頻壓縮算法進行壓縮編碼&#xff0c;然后通過IP 網將低碼率的…

自動對焦方法學習

實現自動對焦的方法有很多種,可以根據不同的工作原理,將自動對焦技術分成不同種類。 按照系統是否自帶信號發射系統,可以分為主動式與被動式兩種類型。 主動式對焦方法是由成像系統中的發射裝置發出信號,然后再由接收裝置接收從被攝景物所反射回來的反饋信號并利用通過計算…

微粒化運營:升級內容產業消費體驗(附視頻版)

那些最受歡迎的內容平臺做對了什么&#xff1f; Facebook和Google是全球互聯網廣告產業中最早開始微粒化運營的代表&#xff0c;Google的互聯網精準廣告的思路與微粒化運營是完全相同的&#xff0c;這兩家公司也因此獲得了全球超過20%的互聯網廣告的收入。 以Facebook為例&…

mycat讀寫分離

只需要讀寫分離的功能&#xff0c;分庫分表的都不需要。 涉及到的配置文件&#xff1a; 1.conf/server.xml 主要配置的是mycat的用戶名和密碼&#xff0c;mycat的用戶名和密碼和mysql的用戶名密碼是分開的&#xff0c;應用連接mycat就用這個用戶名和密碼。 <?xml version&q…

chisel快速入門(一)

一、概述 Chisel&#xff08;Constructing Hardware In a Scala Embedded Language&#xff09;是一種嵌入在高級編程語言Scala的硬件構建語言。Chisel實際上只是一些特殊的類定義&#xff0c;預定義對象的集合&#xff0c;使用Scala的用法&#xff0c;所以在寫Chisel程序時實際…

DVS/DVR常見的監控名詞

英文名詞 說明BNC 全稱Bayonet Nut Connector&#xff0c;一種用于同軸電纜的連接器DHCP 動態主機配置協議&#xff0c;用于動態地指派配置信息DNS 域名系統&#xff0c;以用戶友好的方式將名字轉換為…

導出數據生成excel

前臺&#xff1a; <asp:Button ID"btnMoney" runat"server" Text"經費使用總結表" CssClass"admin_cx marginleft" Height"25" OnClick"btnMoney_Click" /> 后臺&#xff1a; protected void btnMoney_Cli…

U盤基本處理,U盤與移動固態硬盤

一、辨別 USB2.0 和 USB3.0 1、從USB外觀上來看&#xff0c;USB2.0通常是白色或黑色&#xff0c;而USB3.0則改觀為“高大上”的藍色接口。 目前&#xff0c;部分筆記本電腦USB接口&#xff0c;已同時提供對USB2.0及USB3.0的支持&#xff0c;我們可以通過接口顏色來區別。 2、從…

UWP_小說在線閱讀器:功能要求與技術要求

注&#xff1a;2017年2月23日正式提上日程 學了WP開發也有一年了&#xff0c;也沒做過什么軟件的。17年進發UWP&#xff0c;鍛煉自己一下。做一個開源的小說閱讀器吧。 既然開發一個軟件。所以要設計一下吧。 功能要求&#xff1a; 可能要用到的技術&#xff0c;這個嗎&#xf…

chisel快速入門(二)

上一篇見此&#xff1a; chisel快速入門&#xff08;一&#xff09;_滄海一升的博客-CSDN博客簡單介紹了chisel&#xff0c;使硬件開發者能快速上手chisel。https://blog.csdn.net/qq_21842097/article/details/121415341 十、運行和測試 現在我們已經定義了模塊&#xff0c;…

【WPF】設置TextBox內容為空時的提示文字

原文:【WPF】設置TextBox內容為空時的提示文字<TextBox Width"150" Margin"5"><TextBox.Resources><VisualBrush x:Key"HintText" TileMode"None" Opacity"0.5" Stretch"None" AlignmentX"Le…

視頻矩陣

視頻矩陣&#xff0c;就將視頻圖像從任意一個輸入通道切換到任意一個輸出通道顯示。一般來講,一個MN矩陣&#xff1a;表示它可以同時支持M路圖像輸入和N路圖像輸出。即任意的一個輸入和任意的一個輸出。 視頻矩陣 - 基本功能和要求 一個矩陣系統通常還應該包括以下基本功能&…