docker网络桥接到宿主机网卡使用局域网主机IP地址

DOCKER默认会连接到虚拟docker0虚拟网卡上,其他宿主机无法直接访问容器。如果需要实现局域网其他主机可以直接远程连接容器的话需要使用桥接网络,为docker容器分配宿主机局域网IP地址。

1、停止docker服务

systemctl stop docker

2、安装依赖包

 yum  install bridge-utils -y

3、网卡配置信息添加BRIDGE=br0

4、创建br0网桥

cp  /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-br0
[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE="Bridge"
BOOTPROTO="none"
NM_CONTROLLED="no"
DEFROUTE="yes"
DEVICE="br0"
ONBOOT="yes"
IPADDR="10.168.1.150"
PREFIX="24"
GATEWAY="10.168.1.1"
DNS1="114.114.114.114"
USERCTL="no"

5、修改docker启动文件

[root@master ~]# vim /lib/systemd/system/docker.service 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -b=br0

6、重启网络和docker服务

[root@master ~]# systemctl restart network
[root@master ~]# systemctl restart docker

7、新建docker容器并查看IP地址

可以看到成功获取局域网内部的IP地址。但是获取到的是我路由器的地址,不知道为什么不检查。使用桥接网络时最好手动指定ip地址。

拓展:

怎样手动指定IP地址?

1、下载pipework

[root@master ~]# yum install git -y
[root@master ~]# git clone https://github.com/jpetazzo/pipework
[root@master ~]# cp pipework/pipework /usr/bin/

2、启动容器并设置网络

[root@master ~]# docker run -itd --net=none --name=centos8 centos /bin/bash
[root@master ~]# pipework br0 centos8 10.168.1.232/24@10.168.1.1

3、查看并测试

发表评论

后才能评论