Docker之bridge網絡

一.相關介紹

docker的橋接網絡使用虛擬網橋,bridge網絡用於同一主機上的docker容器相互通信,連接到同一個網橋的docker容器可以相互通信,當我們啓動docke時,會自動創建一個默認bridge網絡,除非我們進行另外的配置,新創建的容器都會自動連接到這個網絡,我們也可以自定義自己的bridge網絡,docker文檔建議使用自定義bridge網絡,默認的bridge網絡具有一定的缺陷

連接到同一bridge網絡的容器可以相互訪問彼此任意一個端口,如果不發佈端口,外界將無法訪問這些容器,在創建容器時,通過-p或是–publish指令發佈端口

自定義bridge網絡與默認bridge網絡對比:

  • 默認橋接網絡中的容器只能通過IP地址訪問其他容器(除非使用遺留的-link指令連接兩個容器),而自定義橋接網絡提供DNS解析,可以通過容器的名字或是別名訪問其他容器
  • 容器可以自由的進入或是退出自定義橋接網絡,如果想要退出默認橋接網絡,需要先停止容器的運行,然後重新創建該容器,並指定需要連接的其他網絡
  • 如果更改了默認橋接網絡的網絡配置,需要重新啓動docker,並且由於默認橋接網絡只有一個,因此所有容器的網絡配置都是一樣的,而用戶自定義網絡可以在創建時指定網絡配置(例如默認網關、MTU等),不需要重啓docker,靈活性更高
  • 在默認橋接網絡中,可以通過–link參數連接兩個容器來共享環境變量,用戶自定義網絡中無法使用這種方式,但是docker提供了更好的方式:
    • 多個容器可以使用docker volume(這是docker存儲數據的一種方式,以後會介紹)掛載到同一個文件,在文件中指明環境變量,從而實現所容器的環境變量共享
    • 多個容器可以使用同一個docker-compose(與docker service有關)文件啓動,可以在該文件中定義共享環境變量
    • 可以使用swarm services,並且通過secrets和configs (這兩個還沒看)實現環境變量共享

二.使用自定義網絡

1、創建一個自定義網絡

(1)創建lss-net的網絡

docker network create  lss-net

可以指定子網、IP地址範圍、網關等網絡配置,更多請查看:

https://docs.docker.com/engine/reference/commandline/network_create/#specify-advanced-options

(2)查看下本機的網絡列表,發現已添加進去

[root@localhost ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
19fa32c5bc3e        bridge              bridge              local
9d978517ef6f        host                host                local
c955f4b320ed        lss-net             bridge              local
710c293e1490        none                null                local

(3)移除自定義網絡

docker network rm lss-net
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章