Docker 網(wǎng)絡(luò)工作原理詳解
Docker 網(wǎng)絡(luò)工作原理
當(dāng)Docker server也就是docker daemon啟動時,會自動創(chuàng)建一個名字是docker0的bridge,每當(dāng)docker創(chuàng)建一個Container時,會在主機(jī)上面創(chuàng)建一個名字是veth*的ethernet 端口,并把這個eth*加入到docker0的bridge,在container中會自動創(chuàng)建一個名字是eth0的ethernet端口,這個eth0和veth*會形成一個類似管道的對,一一對應(yīng)。
配置DNS
docker是如何分配每個container的hostname和DNS配置的,可以通過在contain中mount命令看出一些東西:
mount ... /dev/disk/by-uuid/5f3d0920-98a8-434a-9c02-8163dccf6c62 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered) /dev/disk/by-uuid/5f3d0920-98a8-434a-9c02-8163dccf6c62 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered) /dev/disk/by-uuid/5f3d0920-98a8-434a-9c02-8163dccf6c62 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered) ...
docker run的-h 可以配置container的hostname,可以通過-h HOSTNAME或者--hostname=HOSTNAME來配置,docker會把HOSTNAME寫入/etc/hostname
例如:
xiaogang@Ubuntu:~/shadowsocks$ sudo docker run -t -i --hostname ubuu --rm ubuntu:14.04 /bin/bash
root@ubuu:/# cat /etc/hostname
ubuu
--link=CONNTAINER_NAMEorID:ALIAS,通過這個選項(xiàng)會在/etc/hosts中添加一個ALIAS,指向CONTAINER_NAMEorID, 無需知道具體的IP地址,可以直接使用ALIAS代替。
例如:
--dns=IP_ADDRESS, 會在/etc/resolv.conf的server標(biāo)簽中添加一個IP_ADDRESS
--dns-search=DOMAIN,會在/etc/resolv.conf的search標(biāo)簽中添加一個DOMAIN,如果一個example.com添加到search標(biāo)簽中,當(dāng)container需要查找一個host的IP時,host.example.com同時也會被查找。
container中的/etc/resolv.conf是從主機(jī)中的/etc/resolv.conf拷貝而來,只不過是把主機(jī)本地的nameserver過濾掉,如果過濾之后沒有任何的nameserver,docker會把google公共nameserver,8.8.8.8和8.8.4.4加入namerserver中。當(dāng)主機(jī)的resolv.conf修改之后會通知container修改
container之間的通信和container和外部之間的通信
1.需要設(shè)置ip_forward系統(tǒng)參數(shù),必須設(shè)置為1
$ sysctl net.ipv4.conf.all.forwarding net.ipv4.conf.all.forwarding = 0 $ sysctl net.ipv4.conf.all.forwarding=1 $ sysctl net.ipv4.conf.all.forwarding net.ipv4.conf.all.forwarding = 1
2.需要設(shè)置iptables,允許它們之間的通信
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
一文詳解如何在Ubuntu系統(tǒng)中安裝docker
這篇文章主要為大家詳細(xì)介紹了在Ubuntu操作系統(tǒng)上安裝Docker的步驟,以便我們可以開始使用Docker來構(gòu)建和運(yùn)行容器化應(yīng)用程序,希望對大家有所幫助2024-03-03
Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式
這篇文章主要介紹了Docker容器遷移之導(dǎo)入和導(dǎo)出容器方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
Docker拉取ubuntu鏡像并建立環(huán)境的詳細(xì)過程
在Docker實(shí)戰(zhàn)中Ubuntu是一個常見的基礎(chǔ)鏡像,用于構(gòu)建其他應(yīng)用服務(wù)的容器,這篇文章主要給大家介紹了關(guān)于Docker拉取ubuntu鏡像并建立環(huán)境的詳細(xì)過程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
使用docker compose搭建一個elk系統(tǒng)的方法
這篇文章主要介紹了使用docker-compose搭建一個elk系統(tǒng)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
解決docker運(yùn)行tomcat提示找不到文件的問題
這篇文章主要介紹了docker運(yùn)行tomcat提示找不到文件的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-03-03
詳解使用Docker快速部署ELK環(huán)境(最新5.5.1版本)
這篇文章主要介紹了詳解使用Docker快速部署ELK環(huán)境(最新5.5.1版本),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

