04 docker埠對映的原理及配置方法

2021-10-09 14:28:38 字數 2953 閱讀 1173

下面面這一段這就是docker 的網路,我們可以看到它的網段是172.17.0.0段的。

3: docker0: 

mtu 1500 qdisc noqueue state up group default

link/ether 02:42:b6:4b:f0:16 brd ff:ff:ff:ff:ff:ff

inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

valid_lft forever preferred_lft forever

inet6 fe80::42:b6ff:fe4b:f016/64 scope link

valid_lft forever preferred_lft forever

我們進入到此容器中看一下ip位址

我們退出容器,來到宿主機來ping一下這個ip

結果是可以通的。我們換台區域網的其他機器再試試。

其他機器無法ping通。

通過以上實驗,我們可以發現docker的容器只有宿主機可以ping通。其他機器是無法ping通的。

我們可以通過以下命令檢視

指定埠對映 docker 會自動增加一條iptables規則來實現埠對映。

上面如果不是很清楚,可以看下圖

埠不能衝突,上面提示就是80埠已被占用。

-p 80:80 

-p 192.168.0.243:80:80

-p 192.168.0.243::80 宿主機是隨機埠對映容器80埠,兩個冒號。隨機成啥埠可以通過docker ps檢視

以上未指定協議,預設都是tcp,如果是udp就必須指定

-p 192.168.0.243::1194/udp 宿主機是隨機埠,容器是1194,協議是udp

-p 81:80 -p

如果有多個容器都要使用同乙個埠例如80埠,我們就可以利用乙個網絡卡支援多個ip的方法實現.

UPnP 埠對映原理

三.miniupnp 參考實現 upnp 條件 簡單來理解的話,upnp 是一種裝置間通訊協議,功能是建立裝置和 nat 閘道器的埠對映,目的是希望接入 internet 的任意兩個裝置在 lan 下可以相互通訊。裝置加入網路時,通過簡單服務發現協議 ssdp 尋找網路上可用裝置。internet ...

網路埠對映的原理

有容器內外的埠對映,是怎麼做到的呢?這是要起乙個新的網路的 吧 啟動了docker之後,在docker上面還是有確實是有iptables的項,但是此時應該是有兩個網路的 吧,使用ip netns list是沒有看到的,也就是說其實是在乙個網路的 中的網路埠的對映 chain postrouting ...

docker 追加docker容器埠對映的方法

docker run可以指定埠對映,但是容器一旦生成,就沒有乙個命令可以直接修改。通常間接的辦法是,儲存映象,再建立乙個新的容器,在建立時指定新的埠對映。但這樣太麻煩了。現在有新方案來解決掉 操作步驟 1 檢視容器 docker ps a2 停止容器 docker stop f5033 停止dock...