docker自定义网桥docker0及docker的开启,关闭,重启命令操作

问题

公司将服务器迁移后,docker默认创建的doker0网桥与公司的外网网关产生冲突,

导致外网无法连接服务器。

解决方式

修改默认的配置文件 /etc/docker/daemon.json对Docker进行配置。

如果没有直接创建

1、关闭 docker服务

systemctl stop docker

2、修改bip

{
 "bip": "192.168.0.1/24", # 修改此处
 ....
}

3、重启docker

systemctl restart docker

docker 关闭、重启、启动命令

sudo service docker stop # 关闭 或
sudo systemctl stop docker
sudo service docker restart # 重启 或
sudo systemctl restart docker
sudo service docker start # 启动
sudo systemctl start docker # 启动

补充:修改docker0默认ip

Docker 服务启动后默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。

Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信,它还给出了 MTU(接口允许接收的最大传输单元),通常是 1500 Bytes,或宿主主机网络路由上支持的默认值。这些值都可以在服务启动的时候进行配置。

可以用编辑/etc/docker/daemon.json文件,添加内容 "bip": "ip/netmask" [ 切勿与宿主机同网段 ]

[root@localhost /]# vi /etc/docker/daemon.json
{"bip":"192.168.100.1/24"}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • docker添加网桥并设置ip地址范围操作

    不知道是因为二进制docker 19.03版本安装后不自动创建docker0网桥,还是其他什么原因,docker的网络模式里面的bridge网桥没有. 害的我装个容器映射端口一直看不到端口,也不报错,定位半天才发现没有这个bridge网桥. 废话不多说.开干! 先看一下当前情况: 由于是生产环境,所以先要把pod给驱逐一下,以免影响业务 首先说下,直接使用docker network create xx的方式是不行的.因为这种方式创建的网桥并没有挂到虚拟机上,所以不工作,可能需要一些其他的额外配

  • Docker Compose 网络设置详解

    基本概念 默认情况下,Compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络中.这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问. 默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml所在目录的名称.如需修改工程名称,可使用--project-name标识或COMPOSE_PORJECT_NAME环境变量. 举个例子,假如一个应用程序在名为myapp的目录中,并且do

  • 浅谈docker-compose网络设置之networks

    networks使用方式之官网教程 官网的docker-compose.yml参考文档:Compose file version 3 reference 较为准确的中文翻译版:Compose file version 3 reference networks通常应用于集群服务,从而使得不同的应用程序得以在相同的网络中运行,从而解决网络隔离问题.这种应用在swarm部署中,非常常见.不过,本文并不做讨论. 一般对于集群服务,常常通过docker-compose.yml文档快速编排.部署应用服务.官

  • 一次centos Docker网桥模式无法访问宿主机Redis服务的故障排除经历

    背景: 之前做了一个项目,需要在容器内访问宿主机提供的Redis 服务(这是一个比较常见的应用场景哈), 常规方案: ① 主机网络(docker run --network=host): 完全应用主机网络堆栈,在容器内localhost就是指向宿主机 ② 网桥网络(docker run --network=bridge): 这也是docker容器默认的网络通信模式,容器内localhost 指向的是容器自身,不能使用 localhost 访问宿主机上localhost:6379承载的Redis服

  • docker-compose创建网桥,添加子网,删除网卡的实现

    1.创建docker网卡 [root@i ~]# brctl addbr docker0 [root@i ~]# ip addr add 192.168.42.1/24 dev docker0 # 这里的ip是给docker内部用的, 随意配置一个即可 [root@i ~]# ip link set dev docker0 up [root@i ~]# ip addr show docker0 # 查看docker [root@i ~]# systemctl restart docker [ro

  • docker自定义网桥docker0及docker的开启,关闭,重启命令操作

    问题 公司将服务器迁移后,docker默认创建的doker0网桥与公司的外网网关产生冲突, 导致外网无法连接服务器. 解决方式 修改默认的配置文件 /etc/docker/daemon.json对Docker进行配置. 如果没有直接创建 1.关闭 docker服务 systemctl stop docker 2.修改bip { "bip": "192.168.0.1/24", # 修改此处 .... } 3.重启docker systemctl restart do

  • docker 在容器外执行某个容器内的某个命令操作

    有时候我们想执行某个容器的某条命令,但又不想进入容器内.那该怎么办? 于是脚本可以这样写 #!/bin/bash DOCKER_ID=62f3f40ab240 sudo docker exec -it $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py' done 补充知识:解决docker容器与宿主机无缝调用shell命令问题 我就废话不多说了,大家看解决方法吧~ nsenter -t 1 -m

  • 详解如何修改 Docker 默认网桥地址

    在公司里搭建docker测试环境,需要访问内部的服务, 由于网段是172.17.导致该容器没有办法正常访问公司内部服务.翻了一下官方的帮助文档,找到了修改默认网桥地址的办法. 首先停止正在使用的 Docker 服务: $ sudo service docker stop 接着删除 Docker 默认网桥 docker0 : $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 $ sudo iptables -t nat -

  • Docker之修改/etc/default/docker 里的DOCKER_OPTS参数不生效问题

    默认情况下,/etc/default/docker配置了不会生效的,我们需要手动添加到docker的环境设定中,需要配置的文件是/usr/lib/systemd/system/docker.service,需要添加EnvironmentFile=-/etc/default/docker,让后在ExecStart这个配置中,添加引用的参数$DOCKER_OPTS.置网桥的时候,我们在/etc/default/docker里添加了DOCKER_OPTS参数,但是DOCKER_OPTS参数不生效问题,

  • linux查看防火墙状态与开启关闭命令详解

    linux查看防火墙状态与开启关闭命令有以下两种方式: 一.service方式 查看防火墙状态: [root@centos6 ~]# service iptables status iptables:未运行防火墙. 开启防火墙: [root@centos6 ~]# service iptables start 关闭防火墙: [root@centos6 ~]# service iptables stop 二.iptables方式 先进入init.d目录,命令如下: [root@centos6 ~]

  • 详解修改docker启动默认网桥docker0为自定义网桥

    自定义网桥 除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器. 在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥. 如果服务已经运行,那需要先停止服务,并删除旧的网桥. $ sudo service docker stop $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 然后创建一个网桥 bridge0. $ sudo brctl addbr

  • Docker自定义网络详细介绍

    目录 Docker自定义网络 一.自定义网络介绍 二.创建自定义网络 Docker自定义网络 一.自定义网络介绍 1.介绍 常规docker容器启动,可以用–link,进行容器网络绑定,但是一旦容器多了之后就会非常麻烦,所以要自定义一个docker网络,小白推荐使用–link命令 自定义网络修复了docker0的容器之间无法用容器名相互ping通的问题,只能使用ip才能ping通,但是我们自定义的网络是可以用ip或者容器名相互ping通的 2.命令 自定义网络命令 说明 docker netwo

  • Docker 自定义Dev环境并部署php

    docker其实比之前想象的要简单,下载你想要的服务镜像,用 docker run 生成一个容器,当你基础环境都ok的时候,docker commit 命令保存你新的自定义镜像,我需要的是centos中集成的lnmp,要求php >= 7.2,并开启以下扩展. extension = yaf.so extension = swoole.so extension = mongodb.so extension = redis.so extension = trie_filter.so extensi

  • docker安装redis挂载容器卷同时开启持久化

    目录 一.安装 1.搜索redis容器镜像并拉取容器镜像 2.在宿主机本地创建redis存储配置文件和数据的目录,我这里创建/docker/redis下 3.配置文件 4.启动容器 二.进入容器,指定配置文件启动redis服务 1.启动redis服务 2.指定6380端口登陆客户端 三.删除容器后重新启动容器 1.删除,然后查看宿主机目录下是否有持久化文件,查看这一步可以放在上一步后 2.重启容器 说明:centOS操作系统,操作系统已安装过redis,端口6379已被占用.容器将会使用6380

  • Docker与iptables及实现bridge方式网络隔离与通信操作

    Docker提供了bridge, host, overlay等多种网络.同一个Docker宿主机上同时存在多个不同类型的网络,位于不同网络中的容器,彼此之间是无法通信的. Docker容器的跨网络隔离与通信,是借助了iptables的机制. iptables的filter表中默认分为INPUT, FORWARD和OUTPUT共3个链. Docker在FORWARD链中(forward到自定义的链),还额外提供了自己的链,以实现bridge网络之间的隔离与通信. Docker的基本网络配置 当 D

随机推荐