天天看點

Docker網絡詳解

docker使用linux橋接,在主機虛拟一個<code>docker0</code>網絡接口,在主機中運作指令檢視:

docker啟動一個container時會會根據<code>docker0</code>的網段劃分container的ip,<code>docker0</code>是每個container的網關。

盡管docker在使用linux brigde會找最合适的。但是有時候我們還是需要自己規劃。

使用<code>-b=&lt;bridgename&gt;</code>參數設定

docker預設是允許container互通,通過<code>-icc=false</code>關閉互通。

一旦關閉了互通,隻能通過<code>-link name:alias</code>指令連接配接指定container.

container互相隔離的情況下,假設我們有一個webapp container,一個redis contianer需要互通。

先啟動redis container:

再啟動webapp并聯通到redis

在webapp中可以看到db的網絡資訊:

0.11版本以後,<code>-- link redis:db</code>的别名,會在<code>/etc/hosts</code>中生成對應的ip映射:

vethxxx是主機與container内部eth0相連的管道。詳見<code>ip link</code>和<code>namespaces infrastructure</code>