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
例如:
root@ubuu:/# cat /etc/hostname
ubuu
--link=CONNTAINER_NAMEorID:ALIAS,通過這個選項會在/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)文章
基于Docker實(shí)現(xiàn)MySQL主從復(fù)制的詳細(xì)教程
這篇博客整理了如何在Docker環(huán)境下配置MySQL主從復(fù)制,通過創(chuàng)建和命名兩個MySQL容器,設(shè)置獨(dú)立IP,并詳細(xì)說明了在宿主機(jī)上持久化數(shù)據(jù)、開啟root遠(yuǎn)程訪問及添加復(fù)制用戶的過程,需要的朋友可以參考下2024-10-10
.netcore 使用surging框架發(fā)布到docker
這篇文章主要介紹了netcore 使用surging框架發(fā)布到docker,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
docker-compose+nginx部署前后端分離的項目實(shí)踐
本文主要介紹了docker-compose?+?nginx部署前后端分離的項目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

