docker网段冲突了怎么办
前言
最近ssh登陆公司远程服务器,突然登不进去,后经排查是因为有个docker容器的网段和公司的网段冲突了,导致登陆不上去。
如何解决
docker默认网段是172.17,和公司的网段冲突,因此解决的办法其实也挺简单的,要么换公司网段,要么换docker网段,是个正常人都会选择换docker网段
解决方案
方案一:不改docker网段,创建不和公司网段冲突的docker子网段
C/C++ Code复制内容到剪贴板
- docker network create --driver=bridge --subnet=192.161.0.0/16 monitor_net
运行容器时指定
C/C++ Code复制内容到剪贴板
- docker run -it --name <容器名> ---network monitor_net <镜像名
在docker-compose同样通过networks指定,形如下
C/C++ Code复制内容到剪贴板
- version: '3'
- networks:
- monitor:
- #使用已经存在的网络
- external:
- name: monitor_net
- services:
- prometheus:
- image: prom/prometheus
- container_name: prometheus
- hostname: prometheus
- privileged: true
- restart: always
- volumes:
- - /usr/local/src/config/prometheus.yml:/etc/prometheus/prometheus.yml
- - /usr/local/src/config/node_down.yml:/etc/prometheus/node_down.yml
- ports:
- - "9091:9090"
- networks:
- - monitor
- links:
- - alertmanager
- - node-exporter
方案二:修改docker默认网段
1、停止docker
C/C++ Code复制内容到剪贴板
- systemctl stop docker
2、删除原有网桥
C/C++ Code复制内容到剪贴板
- ip link del docker0 down
3、vim /etc/docker/daemon.json,添加形如下内容
C/C++ Code复制内容到剪贴板
- "bip":"192.161.20.1/24"
如果没有daemon.json文件,则新建
文件内容形如下
C/C++ Code复制内容到剪贴板
- {
- "registry-mirrors": ["https://zq2cvqfe.mirror.aliyuncs.com"],
- "insecure-registries":["192.168.1.30:5002"],
- "bip":"192.161.20.1/24"
- }
4、重启docker服务
C/C++ Code复制内容到剪贴板
- systemctl restart docker
5、通过ifconfig 查看docker网段是否已经变更