docker容器和宿主机同网段IP

实现目标

其他机器可以直接通过ip地址访问由docker创建的容器,而不使用端口映射的宿主机的方式访问(因为很多时候是需要通过注册中心注册上去的,这种情况程序注册的时候不知道宿主机的映射关系)

配置宿主机地址

配置宿主机地址

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=358dfece-a250-48ca-89de-29ec9e680449
DEVICE=ens33
ONBOOT=yes
IPV6INIT=no
HWADDR=00:0c:29:70:64:74
ZONE=
BRIDGE=br0  # 要把此端口绑定到对应的网桥上

配置网桥(br0)

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0
STP=yes
IPADDR=10.0.0.253
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS=114.114.114.114
HWADDR=00:0c:29:70:64:74

重启network服务

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network

配置docker

/usr/bin/dockerd -b=br0 --fixed-cidr=10.0.0.254/26

-b 表示绑定到那个网桥上(和宿主机的端口绑定到同一个网桥上)
--fixed-cidr=10.0.0.254/26  创建的服务器可以分配的地址

重启docker

systemctl start docker.service

你可能感兴趣的:(docker容器和宿主机同网段IP)