实现目标
其他机器可以直接通过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