伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

解决docker服务默认网卡和宿主机网卡内网段冲突

来源:本站原创 浏览:99次 时间:2022-08-12
场景说明介绍:

docker网络模式默认使用的bridge模式,当我们创建容器时,每个容器会有它自己的虚拟网络接口连接到桥接网络docker0,并获取一个ip。可以通过ifconfig docker0查看docker0的信息,使用route -n命令可以看到。
docker会默认占用三个网段,172.17.0.0,172.18.0.0,172.19.0.0
在实际使用环境中,有可能咱们局域网内已经将这些网段分配到了其他的工作区域中,如果在这些工作区域中去访问此环境下的docker服务,是无法正常访问的。
那么这时候就只有两种解决办法,将已分配的工作区域的网段换成其他网段,或者将docker占用的网段指定成其他网段,显然前者相对来说成本要稍高些。
所以今天咱们就来看看如何将docker network占用的网段指定成其他的网段以避免ip冲突。

解决过程如下:

第一步停止docke服务,删除默认的桥接docker0网卡:

sudo service docker stopsudo ip link set dev docker0 downsudo brctl delbr docker0

提示下面问题,解决办法: yum install bridge-utils
root@localhost ~]# brctl
-bash: brctl: command not found

第二步 手动创建一个新的网桥名称为 bridge0:

sudo brctl addbr bridge0sudo ip addr add 192.188.0.0/16 dev bridge0 sudo ip link set dev bridge0  up

第三步 创建daenon.json文件:

vim /etc/docker/daemon.json{"bridge": "bridge0"}

提示:本以为此步骤完成后 重启docker服务就会把docker0默认的网卡删掉。但是事实不是这样的

第四步 解决重启docker服务,新绑定的bridge0失效,docker0网卡又自动恢复原样的问题:

CentOS7修改Docker默认启动参数:

[root@data-db01 ~]# cat /etc/default/docker#选择网桥DOCKER_OPTS="-b=bridge0"#指定DNS#DOCKER_OPTS="--dns 114.114.114.114 --dns 8.8.8.8"

下面的docker服务启动脚本添加了2行的配置文件说明:

[root@data-db01 ~]# cat  /usr/lib/systemd/system/docker.service[Unit]Description=Docker Application Container EngineDocumentation=http://docs.docker.comAfter=network.targetWants=docker-storage-setup.serviceRequires=docker-cleanup.timer[Service]Type=notifyNotifyAccess=allKillMode=processEnvironmentFile=-/etc/default/docker  ###加载的配置文件EnvironmentFile=-/etc/sysconfig/dockerEnvironmentFile=-/etc/sysconfig/docker-storageEnvironmentFile=-/etc/sysconfig/docker-networkEnvironment=GOTRACEBACK=crashEnvironment=DOCKER_HTTP_HOST_COMPAT=1Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbinExecStart=/usr/bin/dockerd-current \          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \          --default-runtime=docker-runc \          --exec-opt native.cgroupdriver=systemd \          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \          --init-path=/usr/libexec/docker/docker-init-current \          --seccomp-profile=/etc/docker/seccomp.json \          $OPTIONS \          $DOCKER_STORAGE_OPTIONS \          $DOCKER_NETWORK_OPTIONS \          $ADD_REGISTRY \          $BLOCK_REGISTRY \          $INSECURE_REGISTRY \          $DOCKER_OPTS ###需要引用的参数,也是网卡设定参数ExecReload=/bin/kill -s HUP $MAINPIDLimitNOFILE=1048576LimitNPROC=1048576LimitCORE=infinityTimeoutStartSec=0Restart=on-abnormalMountFlags=slave[Install]WantedBy=multi-user.target

添加的2行说明:

  1. 加载的配置文件
    EnvironmentFile=-/etc/default/docker
  2. 然后在ExecStart这个配置中,添加引用的参数,另外此前一行结尾要加 \
    $DOCKER_OPTS

启动脚本修改参考文档:
https://blog.51cto.com/smilepad/2324171

#重载
systemctl daemon-reload

#重启docker服务
systemctl restart docker

#查看 docker 启动状态
systemctl status docker

第五、如果重启docker服务,发现默认的docker0网卡还在,那就继续执行下面的命令

sudo service docker stopsudo ip link set dev docker0 downsudo brctl delbr docker0

启动docker服务,直到生效为止
sudo service docker restart

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net