問題環境:CentOS7.9
核心版本:3.10.0-229.el7.x86_64
問題現象:Docker網橋不通。安裝Docker-ce後,啟動容器,發現容器網路不通。在宿主機上ping網橋172.17.0.1可以通;在容器內ping網橋不通;宿主ping容器不通;容器內ping宿主也不通。
解決方法:升級核心
之前在該宿主上安裝有docker,版本:
[root@dockerserver ~]# docker versionClient: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-203.git0be3e21.el7.centos.x86_64 Go version: go1.10.3 Git commit: 0be3e21/1.13.1 Built: Thu Nov 12 15:11:46 2020 OS/Arch: linux/amd64Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-203.git0be3e21.el7.centos.x86_64 Go version: go1.10.3 Git commit: 0be3e21/1.13.1 Built: Thu Nov 12 15:11:46 2020 OS/Arch: linux/amd64 Experimental: false
在這個版本下,容器的網路工作一直很好。直到把docker更換為docker-ce後,啟動容器,網路就發生故障了。故障的Docker-ce版本:
[root@dockerserver ~]# docker versionClient: Docker Engine - Community Version: 20.10.2 API version: 1.41 Go version: go1.13.15 Git commit: 2291f61 Built: Mon Dec 28 16:17:48 2020 OS/Arch: linux/amd64 Context: default Experimental: trueServer: Docker Engine - Community Engine: Version: 20.10.2 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 8891c58 Built: Mon Dec 28 16:16:13 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0
搜了一大堆,發現解決問題不外乎修改網橋、修改sysctl.conf。但基本不管用。執行brctl show,檢查發現,網橋docker0的id竟然是:8000.000000000000。
根據2011年在XEN下的網路除錯經驗,敏銳地意識到,這可能是網橋故障,應該是網路驅動方面的問題。但為什麼docker可以,docker-ce不可以?無暇深究。先試試升級核心。
百度下搜”centos升級核心"第一篇文章:https://www.cnblogs.com/xzkzzz/p/9627658.html
參考這篇文章,迅速完成核心升級。
重啟後,執行brctl show發現
brctl show
網橋id已經不再是0了。
啟動容器後,網路正常。
最新評論