Docker虚拟化技术系列之-网络配置

本文介绍如何为Docker容器配置独立IP及实现容器间的互联。通过自建桥接网络,解决内置bridge网络带来的端口冲突等问题,并支持使用DNS方式配置前端路由层。此外,还详细说明了配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们把docker部署好,是不是想docker能联网呢,能跟其他服务器或者应用进行交互访问呢,那么今天我们来给Docker配置独立的IP及容器之间的互联;

内置bridge(nat)

缺点:

需要配套服务注册/发现,否则宿主上端口分配困难,容易冲突。

由于每个容器暴露的端口都不一致,造成前端路由层nginx配置(proxy_pass)里无法使用dns的方式。

端口映射要在容器启动时就指定好,后期无法变更。

测试发现nat不支持websocket。

自建桥接网络

优点:

每个容器都有独立ip,对外提供服务,如nginx+php,nginx+resin,都可以使用默认的80端口

由于容器暴露端口都可以使用80端口,因此前端路由层nginx配置(proxy_pass)里可以使用dns的方式。

无需为了后期端口映射添加而烦恼

桥接支持websocket

当我们把docker镜像下载下来之后,启动一个容器,登录容器我们会发现容器的ip如下图所示:

停止服务

 /etc/init.d/docker stop

关掉docker0

ifconfig docker0 down

 删除docker

 brctl  delbr  docker0

 增加网桥br0

  yum install bridge-utils

  CentOS6.5下的配置:

   vim  /etc/sysconfig/docker

other_args="-b=br0"

如下图:

wKioL1ir4ZqSPeinAABonxTwM8w152.png-wh_50

  配置bridge桥接网络:

  在/etc/sysconfig/network-scripts/下,修改ifcfg-eth0网卡配置,同时增加ifcfg-br0桥接网卡配置如下:

  vi  ifcfg-eth0内容如下:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
BRIDGE=br0

vi  ifcfg-br0内容如下:

DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
TYPE=Bridge

wKioL1ir4crBief9AABKa7IghAc630.png-wh_50

 启动docker服务:/etc/init.d/docker start

查看服务器网卡信息如下:

wKiom1ir4eLRTzZgAACqbTj--DM151.png-wh_50

 启动一个新的docker客户端,查看客户端ip如下:

进入已经启动过的容器命令:docker attach  容器ID 即可。

wKioL1ir4k2jIRSVAABOfuFOESw012.png-wh_50

从外网下载nginx包:

wKiom1ir4lvRlGbMAABNBjrjdI8599.png-wh_50

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值