docker网段冲突了怎么办
docker 2021-09-27 19:22:57

前言

最近ssh登陆公司远程服务器,突然登不进去,后经排查是因为有个docker容器的网段和公司的网段冲突了,导致登陆不上去。

 

如何解决

docker默认网段是172.17,和公司的网段冲突,因此解决的办法其实也挺简单的,要么换公司网段,要么换docker网段,是个正常人都会选择换docker网段

解决方案

方案一:不改docker网段,创建不和公司网段冲突的docker子网段

C/C++ Code复制内容到剪贴板
  1. docker network create --driver=bridge --subnet=192.161.0.0/16 monitor_net  

 

运行容器时指定

C/C++ Code复制内容到剪贴板
  1. docker run -it --name <容器名> ---network monitor_net  <镜像名  

 

在docker-compose同样通过networks指定,形如下

C/C++ Code复制内容到剪贴板
  1. version: '3'  
  2. networks:  
  3.    monitor:  
  4.    #使用已经存在的网络  
  5.      external:  
  6.        name: monitor_net    
  7.   
  8. services:  
  9.     prometheus:  
  10.         image: prom/prometheus  
  11.         container_name: prometheus  
  12.         hostname: prometheus  
  13.         privileged: true  
  14.         restart: always  
  15.         volumes:  
  16.             - /usr/local/src/config/prometheus.yml:/etc/prometheus/prometheus.yml  
  17.             - /usr/local/src/config/node_down.yml:/etc/prometheus/node_down.yml  
  18.         ports:  
  19.             - "9091:9090"  
  20.         networks:  
  21.             - monitor  
  22.         links:  
  23.             - alertmanager  
  24.             - node-exporter  

 

 

方案二:修改docker默认网段

1、停止docker

C/C++ Code复制内容到剪贴板
  1. systemctl stop docker  

 

2、删除原有网桥

C/C++ Code复制内容到剪贴板
  1. ip link del docker0 down  

 

3、vim /etc/docker/daemon.json,添加形如下内容

C/C++ Code复制内容到剪贴板
  1. "bip":"192.161.20.1/24"  

 

如果没有daemon.json文件,则新建

文件内容形如下

C/C++ Code复制内容到剪贴板
  1. {  
  2.   "registry-mirrors": ["https://zq2cvqfe.mirror.aliyuncs.com"],  
  3. "insecure-registries":["192.168.1.30:5002"],  
  4. "bip":"192.161.20.1/24"  
  5. }  

 

4、重启docker服务

C/C++ Code复制内容到剪贴板
  1. systemctl restart docker  

 

5、通过ifconfig 查看docker网段是否已经变更

 

 

 

 

本文来自于:https://www.cnblogs.com/linyb-geek/p/13939415.html

Powered by yoyo苏ICP备15045725号