国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

Docker 網(wǎng)絡(luò) IP 地址沖突了,我該如何做呢?

2024-06-09 16:59:44
字體:
供稿:網(wǎng)友
1前置知識(shí)
因?yàn)榻粨Q機(jī)的能力有限制,以及網(wǎng)線的連接不可能無限長(zhǎng), 所以我們不可能把所有的主機(jī)都連到同一個(gè)交換機(jī)上,然后處于同一個(gè)二層網(wǎng)絡(luò)中。
 
就算能,主機(jī)間的 ARP 廣播也會(huì)讓這個(gè)網(wǎng)絡(luò)瞬間癱瘓。
 
所以我們得把主機(jī)拆分到一個(gè)個(gè)的小的子網(wǎng)里,然后通過路由器再并成三層網(wǎng)絡(luò)。
 
我們俗稱的 IP 地址其實(shí)由兩個(gè)部分組成,網(wǎng)絡(luò)地址和主機(jī)地址。比如 10.0.0.1/8 中,第一個(gè) 10 是網(wǎng)絡(luò)地址,后面的 0.0.1 是主機(jī)地址。那我怎么知道怎么去拆分這兩段呢?靠的就是子網(wǎng)掩碼,也就是那個(gè) /8。
 
IP 其實(shí)是由 32 位的二進(jìn)制組成的,x.x.x.x 只是為了方便人類閱讀將其轉(zhuǎn)成了十進(jìn)制。有個(gè)簡(jiǎn)單粗暴的辦法就是可以認(rèn)為每一段都是 8 位,所以 /8 就代表第一段是網(wǎng)絡(luò)地址。
 
同理,/16 就代表前兩段都是網(wǎng)絡(luò)地址,10.0.0.0/16 中, 網(wǎng)絡(luò)地址是 10.0,后兩位 0.0 代表每個(gè)子網(wǎng)中的主機(jī)地址。
 
比如 10.0.0.1/16 和 10.0.0.2/16 是同一個(gè)子網(wǎng)的兩個(gè)主機(jī)。10.0.0.1/16 和 10.1.0.1/16 是不同的子網(wǎng)的兩個(gè)主機(jī)。
 
這里只是簡(jiǎn)單粗暴的介紹下,更多的信息還是自己去查資料了解學(xué)習(xí)。
 
2問題表現(xiàn)
 docker 進(jìn)程無法啟動(dòng)
 容器端口無法訪問,抓包顯示為有入站但是沒有出站
3排查
此處針對(duì)的是 dockerd 無法啟動(dòng)的情況,如果 dockerd 能啟動(dòng),可以直接跳到解決一節(jié)
 
首先是看下日志
 
$ systemctl status docker  
$ journalctl -u docker  
$ dmesg | grep docker
一般能看到如下日志:
 
docker0: link is not ready  
docker_gwbridge: link is not ready
或者更簡(jiǎn)單的排查方法,直接手動(dòng)啟動(dòng) dockerd 看看。啟動(dòng)方法可以通過 grep ExecStart /usr/lib/systemd/system/docker.service 查看。
 
一般來說按如下執(zhí)行就行:
 
$ /usr/bin/dockerd --debug
然后能看到最后輸出:
 
INFO[2021-07-29T02:25:55.811673622Z] stopping event stream following graceful shutdown  error="<nil>" module=libcontainerd namespace=moby
failed to start daemon: Error initializing network controller: list bridge addresses failed: PredefinedLocalScopeDefaultNetworks List: [10.252.0.0/24 10.252.1.0/24 10.252.2.0/24]: no available network
這時(shí)候可以看下 ip addr,是否有 docker0 和 docker_gwbridge,
 
如果發(fā)現(xiàn)沒有 docker0,那基本可以肯定是 docker0 無法創(chuàng)建導(dǎo)致 dockerd 啟動(dòng)失敗了。
 
4解決
找到占用的網(wǎng)段
默認(rèn)的 docker0 網(wǎng)段是 172.17.0.0/16,docker_gwbridge 網(wǎng)段是 172.18.0.0/24,你需要確認(rèn)下這兩個(gè)網(wǎng)段是否被占用了。
 
最簡(jiǎn)單的方法就是 ping 一下,如果無響應(yīng)的話,那么就說明沒有被占用。
 
其次就是看一下本機(jī)的路由表 route -n,確認(rèn)一下有沒有沖突的段。一般來說,你會(huì)發(fā)現(xiàn)相關(guān)網(wǎng)段要么已經(jīng)被占用,要么是路由表里存在沖突。
 
案例
 
比如在我的環(huán)境里,我給 docker0 配置為 10.252.0/24,然后 dockerd 起不來。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹阳市| 宁德市| 阳谷县| 莱阳市| 鄂州市| 安图县| 金寨县| 商都县| 云浮市| 石林| 康平县| 灌阳县| 临沧市| 遂宁市| 旬阳县| 濮阳县| 修水县| 莒南县| 方山县| 双江| 彩票| 曲阜市| 萝北县| 龙南县| 古田县| 武穴市| 虞城县| 佛冈县| 抚顺市| 彭泽县| 卢龙县| 崇阳县| 柳林县| 酒泉市| 台湾省| 东台市| 志丹县| 潼南县| 保定市| 南召县| 桐城市|