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、查看并测试

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。