场景描述:
业务需要在一台宿主机上实现多款应用的部署,宿主机业务网络为192.xx docker默认创建的网段是使用bridge模式,通过docker0网段(172.0.1.x)在宿主机内部进行连通,当使用远端主机连接内部容器地址配置路由后仍然不可达。
实现方法:
使用docker macvlan 网络驱动方法,为容器配置桥接网络
macvlan的基本原理:
macvlan通过在宿主机的物理网卡上虚拟多个子网卡,通过不同的mac地址在数据链路层进行网络数据转发
实现步骤:
创建macvlan网络
docker network create -d macvlan --subnet=192.168.3.0/24 --gateway=192.168.3.1 -o parent=eth0 macvlan1
#参数说明:
#-d macvlan 创建macvlan网络,使用macvlan网络驱动
#–subnet 指定宿主机所在网段
#–gateway 指定宿主机所在网段网关
#-o parent 继承指定网段的网卡
指定新创建的网络 创建容器:
docker run --net=macvlan1 --ip=192.168.3.100 --name=test -itd centos /bin/bash
使用远端主机ping 192.168.3.100