Dokcer經過使用 Linux 橋接提供容器之間的通訊,docker0 橋接接口的目的就是方便 Docker 管理。當 Docker daemon 啓動時須要作如下操做面試
1 Docker網絡
1.1 簡介
Dokcer經過使用 Linux 橋接提供容器之間的通訊,docker0 橋接接口的目的就是方便 Docker 管理。當 Docker daemon 啓動時須要作如下操做:docker
- 若是 docker0 不存在則建立
- 搜索一個與當前路由不衝突的 ip 段
- 在肯定的範圍中選擇 ip
- 綁定 ip 到 docker0
1.2 Docker的四種網絡模式
docker run 建立 Docker 容器時,能夠用 --net 選項指定容器的網絡模式,Docker 有如下 4 種網絡模式:網絡
- host 模式:使用 --net=host 指定
- container 模式:使用 --net=container:NAMEorID 指定
- none 模式:使用 --net=none 指定
- bridge 模式:使用 --net=bridge 指定,默認設置
1.2.1 host 模式
若是啓動容器的時候使用 host 模式,那麼這個容器將不會得到一個獨立的 Network Namespace,而是和宿主機共用一個 Network Namespace。容器將不會虛擬出本身的網卡,配置本身的 IP 等,而是使用宿主機的 IP 和端口。架構
1.2.2 container 模式
這個模式指定新建立的容器和已經存在的一個容器共享一個 Network Namespace,而不是和宿主機共享。 新建立的容器不會建立本身的網卡,配置本身的 IP,而是和一個指定的容器共享 IP、端口範圍等。兩個容器除了網絡方面,其餘的如文件系統、進程列表等仍是隔離的。兩個容器的進程能夠經過 lo 網卡設備通訊。學習
1.2.3 none模式
在這種模式下,Docker 容器擁有本身的 Network Namespace,可是,並不爲 Docker容器進行任何網絡配置。也就是說,這個 Docker 容器沒有網卡、IP、路由等信息。須要咱們本身爲 Docker 容器添加網卡、配置 IP 等。url
1.2.4 bridge模式
這個模式是 Docker 默認的網絡設置,此模式會爲每個容器分配 Network Namespace、設置 IP 等,並將一個主機上的 Docker 容器鏈接到一個虛擬網橋上。當 Docker server 啓動時,會在主機上建立一個名爲 docker0 的虛擬網橋,此主機上啓動的 Docker 容器會鏈接到這個虛擬網橋上。 Docker會從RFC1918所定義的私有IP網段中,選擇一個和宿主機不一樣的IP地址和子網分配給docker0,鏈接到docker0的容器就從這個子網中選擇一個未佔用的IP使用。通常 Docker會使用172.17.0.0/16這個網段,並將172.17.42.1/16分配給docker0網橋spa
cc老師2020年高級架構師系統培訓課程7月6號正式開課,如今618活動,限時折扣6800元獨享。至少300學時錄播課程,60小時直播課,內容包含最新架構體系,現主流的架構,以及即時更新最新的技術,從理論到實踐,以及如何解決問題。面試經常使用的 Netty,Redis,Kafka,Zookeeper,Dubbo, Nginx + openResty + kong + Lua, ElasticSearch等技術都深刻源碼層級,輕鬆掌握這些技術,從容應對面試。對於有想跟我同樣有着像提升自身技術的同窗,課程的詳情都在私塾的首頁詳細說明了,感興趣的小夥伴,能夠一塊兒去 【私塾在線 】 學習.net