Docker 網(wǎng)絡工作原理詳解
Docker 網(wǎng)絡工作原理
當Docker server也就是docker daemon啟動時,會自動創(chuàng)建一個名字是docker0的bridge,每當docker創(chuàng)建一個Container時,會在主機上面創(chuàng)建一個名字是veth*的ethernet 端口,并把這個eth*加入到docker0的bridge,在container中會自動創(chuàng)建一個名字是eth0的ethernet端口,這個eth0和veth*會形成一個類似管道的對,一一對應。
配置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,通過這個選項會在/etc/hosts中添加一個ALIAS,指向CONTAINER_NAMEorID, 無需知道具體的IP地址,可以直接使用ALIAS代替。
例如:
--dns=IP_ADDRESS, 會在/etc/resolv.conf的server標簽中添加一個IP_ADDRESS
--dns-search=DOMAIN,會在/etc/resolv.conf的search標簽中添加一個DOMAIN,如果一個example.com添加到search標簽中,當container需要查找一個host的IP時,host.example.com同時也會被查找。
container中的/etc/resolv.conf是從主機中的/etc/resolv.conf拷貝而來,只不過是把主機本地的nameserver過濾掉,如果過濾之后沒有任何的nameserver,docker會把google公共nameserver,8.8.8.8和8.8.4.4加入namerserver中。當主機的resolv.conf修改之后會通知container修改
container之間的通信和container和外部之間的通信
1.需要設置ip_forward系統(tǒng)參數(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.需要設置iptables,允許它們之間的通信
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
idea整合docker快速部署springboot應用的詳細過程
這篇文章主要介紹了idea整合docker快速部署springboot應用,文中給大家提到關(guān)于安裝docker步驟,idea連接遠程docker的方法,需要的朋友可以參考下2021-10-10docker部署mysql 實現(xiàn)遠程連接的示例代碼
這篇文章主要介紹了docker部署mysql 實現(xiàn)遠程連接的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09Centos7 安裝部署Kubernetes(k8s)集群實現(xiàn)過程
這篇文章主要為大家介紹了Centos7 安裝部署Kubernetes(k8s)集群實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11docker開啟mysql的binlog日志解決數(shù)據(jù)卷問題
這篇文章主要為大家介紹了關(guān)于docker容器的數(shù)據(jù)表監(jiān)控,利用docker開啟mysql的binlog日志來解決數(shù)據(jù)卷的問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02Docker網(wǎng)絡配置(橋接網(wǎng)絡和自定義網(wǎng)絡)自定義網(wǎng)絡設置ip方式
這篇文章主要介紹了Docker網(wǎng)絡配置(橋接網(wǎng)絡和自定義網(wǎng)絡)自定義網(wǎng)絡設置ip方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01