最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker網(wǎng)絡(luò)IP地址沖突的解決方法

 更新時間:2023年06月30日 15:04:58   作者:laisky  
本文主要介紹了Docker網(wǎng)絡(luò)IP地址沖突的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

這個問題其實稍微有一點點麻煩,網(wǎng)上也沒有看到有比較全面正確的文章, 值得單獨寫一篇記錄一下。

一、前置知識

因為交換機的能力有限制,以及網(wǎng)線的連接不可能無限長, 所以我們不可能把所有的主機都連到同一個交換機上,然后處于同一個二層網(wǎng)絡(luò)中。

就算能,主機間的 ARP 廣播也會讓這個網(wǎng)絡(luò)瞬間癱瘓。

所以我們得把主機拆分到一個個的小的子網(wǎng)里,然后通過路由器再并成三層網(wǎng)絡(luò)。

我們俗稱的 IP 地址其實由兩個部分組成,網(wǎng)絡(luò)地址和主機地址。 比如 10.0.0.1/8 中,第一個 10 是網(wǎng)絡(luò)地址,后面的 0.0.1 是主機地址。 那我怎么知道怎么去拆分這兩段呢?靠的就是子網(wǎng)掩碼,也就是那個 /8。

IP 其實是由 32 位的二進(jìn)制組成的,x.x.x.x 只是為了方便人類閱讀將其轉(zhuǎn)成了十進(jìn)制。 有個簡單粗暴的辦法就是可以認(rèn)為每一段都是 8 位,所以 /8 就代表第一段是網(wǎng)絡(luò)地址。

同理,/16 就代表前兩段都是網(wǎng)絡(luò)地址,10.0.0.0/16 中, 網(wǎng)絡(luò)地址是 10.0,后兩位 0.0 代表每個子網(wǎng)中的主機地址。

比如 10.0.0.1/16 和 10.0.0.2/16 是同一個子網(wǎng)的兩個主機。 10.0.0.1/16 和 10.1.0.1/16 是不同的子網(wǎng)的兩個主機。

這里只是簡單粗暴的介紹下,更多的信息還是自己去查資料了解學(xué)習(xí)。

二、問題表現(xiàn)

  • docker 進(jìn)程無法啟動
  • 容器端口無法訪問,抓包顯示為有入站但是沒有出站

三、排查

此處針對的是 dockerd 無法啟動的情況,如果 dockerd 能啟動,可以直接跳到“解決”一節(jié)

首先是看下日志

systemctl status docker
journalctl -u docker
dmesg | grep docker

一般能看到如下日志:

docker0: link is not ready
docker_gwbridge: link is not ready

或者更簡單的排查方法,直接手動啟動 dockerd 看看。 啟動方法可以通過 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

這時候可以看下 ip addr,是否有 docker0 和 docker_gwbridge,

如果發(fā)現(xiàn)沒有 docker0,那基本可以肯定是 docker0 無法創(chuàng)建導(dǎo)致 dockerd 啟動失敗了。

四、解決

1、找到占用的網(wǎng)段

默認(rèn)的 docker0 網(wǎng)段是 172.17.0.0/16,docker_gwbridge 網(wǎng)段是 172.18.0.0/24,你需要確認(rèn)下這兩個網(wǎng)段是否被占用了。

最簡單的方法就是 ping 一下,如果無響應(yīng)的話,那么就說明沒有被占用。

其次就是看一下本機的路由表 route -n,確認(rèn)一下有沒有沖突的段。 一般來說,你會發(fā)現(xiàn)相關(guān)網(wǎng)段要么已經(jīng)被占用,要么是路由表里存在沖突。

案例

比如在我的環(huán)境里,我給 docker0 配置為 10.252.0/24,然后 dockerd 起不來。

排查后發(fā)現(xiàn) route -n 里有這么一條:

10.0.0.0        172.21.0.1      255.0.0.0       UG    0      0        0 eth0

也就是說 10/8 被占用了,導(dǎo)致和我的 10.252.0/24 沖突。 后來聯(lián)系網(wǎng)管刪除了這條 10/8 的路由后解決。

2、修改 docker 占用的網(wǎng)段

以下操作需要先停止 docker 進(jìn)程

systemctl stop docker

如果你用 docker service,那么 docker 會占用四個網(wǎng)段:

  • docker0
  • docker_gwbridge
  • ucp(docker engine 占用,不常見)
  • ingress

其中前三個的網(wǎng)段可以通過配置文件配置,第四個只能手動創(chuàng)建。

前三個網(wǎng)段會讀取 /etc/docker/daemon.json 這個配置文件, 這個文件默認(rèn)是沒有的,需要手動創(chuàng)建。

{
    "bip": "",
    "default-address-pools": [
        {"base": "10.252.0.0/24", "size": 24},
        {"base": "10.252.1.0/24", "size": 24},
        {"base": "10.252.2.0/24", "size": 24}
    ]
}

注意這個 default-address-pools 至少要有兩項,按順序依次為:

  • docker0
  • docker_gwbridge
  • ucp

以防萬一的話,配置三個是最好的??。

接下來是修改 ingress,這個比較麻煩,需要手動創(chuàng)建。

我的辦法是在初始化 docker swarm 以后,啟動 docker stack/service 以前,執(zhí)行以下腳本:

  • 刪除 ingress
  • 刪除 my-ingress(不一定存在,不存在就忽略)
  • 新建 my-ingress
yes 'y' | docker network rm ingress
yes 'y' | docker network rm my-ingress 2>&1 | true
docker network create \
  --driver overlay \
  --ingress \
  --subnet=10.252.3.0/24 \  # 指定 ingress 的網(wǎng)段,不要和上面 daemon.json 的網(wǎng)段沖突
  --gateway=10.252.3.2 \
  --opt com.docker.network.driver.mtu=1200 \
  my-ingress

ingress 是默認(rèn)名,之所以新建一個名字不一樣的,是因為刪除 ingress 是異步的。 如果你刪除 ingress 后立刻新建一個也叫 ingress 的網(wǎng)絡(luò),很可能會報一個重名的錯誤。

重啟 docker 前,最好先清理一下 docker 的緩存:

ip link del dev docker0
ip link del dev docker_gwbridge
rm -rf /var/lib/docker/network

3、另一種粗糙簡單的解決辦法

另一種粗糙簡單的解決辦法就是干脆直接手動創(chuàng)建一個 docker0。

這種解決方法最簡單,但是機器 reboot 后 docker0 會自動被刪掉, 所以這方法并不持久。

而且,實際上也不一定能解決網(wǎng)段沖突的問題,只是說 docker 能啟動了而已。

ip link add name docker0 type bridge
ip addr add dev docker0 10.252.0.1/24

 到此這篇關(guān)于Docker網(wǎng)絡(luò)IP地址沖突的解決方法的文章就介紹到這了,更多相關(guān)Docker網(wǎng)絡(luò)IP地址沖突內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker在Windows環(huán)境的搭建和使用詳解

    Docker在Windows環(huán)境的搭建和使用詳解

    這篇文章主要介紹了Docker在Windows環(huán)境的搭建和使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 手動構(gòu)建自己的docker容器鏡像實戰(zhàn)

    手動構(gòu)建自己的docker容器鏡像實戰(zhàn)

    這篇文章主要介紹了如何手動構(gòu)建自己的鏡像并上傳到鏡像倉庫中,文中有詳細(xì)的代碼實例,需要的朋友可以參考閱讀
    2023-04-04
  • docker容器存放目錄磁盤空間滿了的解決

    docker容器存放目錄磁盤空間滿了的解決

    這篇文章主要介紹了docker容器存放目錄磁盤空間滿了的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 解決Docker刪除鏡像報錯:Error response from daemon:conflict:unable to delete xxx (cannot be forced)

    解決Docker刪除鏡像報錯:Error response from daemon:con

    刪除Docker鏡像時遇到?jīng)_突,因為鏡像正在被一個運行中的容器使用,解決方法是先停止并刪除該容器,然后再嘗試刪除鏡像,此外,還可以選擇強制刪除鏡像,但這可能會導(dǎo)致數(shù)據(jù)丟失
    2024-11-11
  • 詳解使用Docker容器來源碼編譯etcd

    詳解使用Docker容器來源碼編譯etcd

    這篇文章主要介紹了詳解使用Docker容器來源碼編譯etcd,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟

    IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟

    這篇文章主要介紹了IDEA使用Docker插件遠(yuǎn)程部署項目到云服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker容器搭建并運行實現(xiàn)過程詳解

    Docker容器搭建并運行實現(xiàn)過程詳解

    這篇文章主要介紹了Docker容器搭建并運行實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 如何調(diào)整Docker中nginx的日志級別詳解

    如何調(diào)整Docker中nginx的日志級別詳解

    這篇文章主要給大家介紹了關(guān)于如何調(diào)整Docker中nginx的日志級別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • docker-compose編排語法及使用說明

    docker-compose編排語法及使用說明

    Compose是用于定義和運行多容器Docker的工具,支持多配置文件、環(huán)境變量、網(wǎng)絡(luò)和端口映射等功能,簡化多容器應(yīng)用部署,通過Dockerfile和docker-compose.yml配置,Compose實現(xiàn)多容器間的依賴、資源限制和日志管理,提高開發(fā)效率
    2026-06-06
  • docker下載運行java項目的實現(xiàn)步驟

    docker下載運行java項目的實現(xiàn)步驟

    本文主要介紹了docker下載運行java項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12

最新評論

伊金霍洛旗| 镇江市| 建湖县| 房山区| 苗栗县| 航空| 辰溪县| 保定市| 兴文县| 吉木萨尔县| 鄂温| 息烽县| 石楼县| 阳曲县| 仙居县| 尖扎县| 庄浪县| 都昌县| 瑞昌市| 裕民县| 进贤县| 石狮市| 屏南县| 防城港市| 邵东县| 天镇县| 吴桥县| 保亭| 华安县| 睢宁县| 左云县| 通渭县| 保山市| 阜平县| 永胜县| 西安市| 正镶白旗| 连平县| 垣曲县| 灵川县| 淮南市|