Docker使用自定义网桥

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

用户也可以指定网桥来连接各个容器,步骤如下:

1. 首先安装bridge-utils工具包

$ sudo apt-get install bridge-utils

然后可以用 “brctl show” 来查看当前网桥信息,可以看到目前只有一个 docker0

$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.56847afe9799 no

2. 然后创建一个网桥 br0

$ sudo brctl addbr br0
$ sudo ip addr add 192.168.66.1/24 dev br0
$ sudo ip link set dev br0 up

添加后可以用 “brctl show” 来查看

$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
docker0 8000.56847afe9799 no

3. 编辑 /etc/default/docker.io 文件,添加如下Docker参数,是Docker默认使用上面新添加的网桥

DOCKER_OPTS="-b=br0"

4. 重启docker服务

sudo service docker.io restart

5. 新建一个容器,可以看到它已经桥接到了 br0 上了。

6. 最后,如果要删除网桥,可以

$ sudo ip link set dev br0 down
$ sudo brctl addbr br0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Docker如何使用OpenvSwitch网桥

    Docker 默认使用的是 Linux 自带的网桥实现,实际上,OpenvSwitch 项目作为一个成熟的虚拟交换机实现,具备更丰富的功能.个人认为,将来 Docker 必然会支持 OpenvSwitch 作为其默认网桥实现.有兴趣的同学欢迎通过如下的步骤来尝鲜. 环境 在 Ubuntu 14.04 系统中进行测试.操作流程也适用于 RedHat/CentOS 系列系统,但少数命令和配置文件可能略有差异. 安装 Docker 安装最近版本的 Docker 并 启动服务. $ sudo apt-g

  • 详解修改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测试环境,需要访问内部的服务, 由于网段是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如何添加自定义网桥

    Docker服务进程在启动的时候会生成一个名为docker0的网桥,容器默认都会挂载到该网桥下,但是我们可以通过添加docker启动参数-b Birdge 或更改docker配置文件来选择使用哪个网桥. 操作系统:centos7 删除docker0网桥 service docker stop //关闭docker服务 ip link set dev docker0 down //关闭docker0网桥 ip link del dev docker0 //删除docker0网桥 自定义网桥设置(/

  • Docker使用自定义网桥

    Docker 服务默认会创建一个 docker0 网桥,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络. 用户也可以指定网桥来连接各个容器,步骤如下: 1. 首先安装bridge-utils工具包 $ sudo apt-get install bridge-utils 然后可以用 "brctl show" 来查看当前网桥信息,可以看到目前只有一个 docker0 $ brctl show bridge name bridge id STP enabl

  • Docker之自定义网络实现

    目录 1.自定义网络实现容器互联 2.网络连通 1.自定义网络实现容器互联 四类网络模式,使用docker network ls查看docker网络模式 Docker网络模式 配置 说明 host模式 –net=host 容器和宿主机共享Network namespace. container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace. kubernetes中的pod就是多个容器共享一个Network namespace.

  • 浅谈Docker如何自定义host文件

    目录 一.命令 二.docker-compose.yml 三.dockerfile 四.直接修改 五.修改镜像 总结 1.问:我们的真正开发的时候数据库都是部署在内网的,而我们程序连接数据库的时候,需要指定内网的地址.但是有时候我们需要迁移环境,那么我们的后端代码就得跟着进行修改,有没有一种好的办法,不让我们修改代码吗? 答:可以肯定的说是有的,那就是在代码中指定的不是IP地址,而是域名.我们只需要配置域名和IP地址建立映射关系,所有的项目都无需更改代码就可以达到目的. 2.问:正式环境一般都是

  • 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 compose自定义网络实现固定容器ip地址

    由于默认的bridge桥接网络,重启容器后会改变ip地址.在一些场景下我们希望固定容器IP地址. docker-compose是docker的一个编排工具,相对于命令模式创建网络,容器等.使用配置文件相对来说更方便,可追溯问题. 直接粘贴docker-compose.yml文件 version: '2' services: nginx: image: nginx:1.13.12 container_name: nginx restart: always tty: true networks: e

  • docker 容器自定义 hosts 网络访问操作

    在 docker-compose.yml 中增加 extra_hosts 关键字就可以将数据写入到容器的 /etc/hosts. extra_hosts 添加主机名映射. extra_hosts: "somehost:162.242.195.82" "otherhost:50.31.209.229" 将会在/etc/hosts创建记录: 162.242.195.82 somehost 50.31.209.229 otherhost 注意: 如果指向的是本机,不要写容

  • Docker 容器指定自定义网段的固定IP/静态IP地址

    Docker容器指定自定义网段的固定IP/静态IP地址 第一步:创建自定义网络 备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段 docker network create --subnet=172.172.0.0/16 docker-ice 注:docker-ice为自定义网桥的名字,可自己任意取名. 第二步:在你自定义的网段选取任意IP地址作为你要启动的container的静态IP地址 备注:这里在第二步中创建的网段中选取了172.172.0.10作为静态IP地址.这

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

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

随机推荐