Docker默认提供了一个隔离的内网环境,启动时会建立一个docker0的虚拟网卡,每个容器都是连接到docker0网卡上的。而docker0的ip段为172.17.0.1,如果想让容器与宿主机同一网段的其他机器访问,就必须在启动docker的时候将某个端口映射到宿主机的端口。这样大家会发现很麻烦,而且在企业里面也没这么使用的,比较弱。
大家应该知道KVM的桥接网络非常方便,其实docker也比较方便,至少不是自带的桥接而已,CentOS 7下如何快速实现docker容器桥接网络,并为容器分配外网IP。
物理机的IP信息
系统:CentOS 7.4
IP:192.168.8.1/24
网关:192.168.8.254
1)停止docker服务
[root@localhost ~]# systemctl stop docker.service或service docker stop
2)安装桥接网卡依赖包
[root@localhost ~]# yum -y install bridge-utils
3)配置网卡
编辑vim /etc/sysconfig/network-scripts/ifcfg-ens33,配置内容如下
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33"
UUID="fb041faa-fea6-4bd6-944c-5d01d7b6ad2b"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"
IPADDR=192.168.8.1
NETMASK=255.255.255.0
GATEWAY=192.168.8.254
# 只需添加BRIDGE="br0"即可,保存退出
4)增加ifcfg-br0桥接网卡,配置如下:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Bridge"
IPADDR=192.168.8.1
NETMASK=255.255.255.0
GATEWAY=192.168.8.254
# 保存退出
5)配置docker网络配置文件,增加br0信息:
[root@localhost ~]# vim /etc/sysconfig/docker-network
DOCKER_NETWORK_OPTIONS="-b=br0"
# 保存退出
6)重启网络服务
[root@localhost ~]# systemctl restart network.service
7)重启docker服务
[root@localhost ~]# systemctl restart docker.service
8)查看本机IP,如下图
9)创建容器,并进入容器查看IP情况:
[root@localhost ~]# docker run -itd centos6.8 /bin/bash
[root@localhost ~]# docker exec -it ae5ed6559291 /bin/bash
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
广东省深圳市南山区 电信 1F
亲测,写的不错,感谢博主