赞
踩
本文主要讲述,将docker的容器ip设置为宿主机同一网段,并且允许宿主机以及局域网其它机器访问它。
- # 创建docker的虚拟网络,本人局域网的网段为192.168.1.0/24,网关为路由器的192.168.1.1
- docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=br0 docker-bridge
-
- # 创建docker容器,通过network参数指定前面创建的虚拟网络,ip参数指定容器的ip地址。下面是个例子,具体命令可以自行替换
- docker run -itd --name test --network=docker-bridge --ip=192.168.1.18 alpine
进行到这里之后,会发现外部机器能ping通容器,但是宿主机无法ping通,这是因为macvlan的原因,还需要进行以下步骤
- # 添加一个虚拟网卡并桥接到物理网卡,我这里因为上面还有一层虚拟网桥,所以用的是br0,否则就是用物理网卡名
- ip link add macvlan-proxy link br0 type macvlan mode bridge
-
- # 给虚拟网卡配置ip,这里可以是网段内任意ip,但是要避免ip冲突
- ip addr add 192.168.1.16 dev macvlan-proxy
-
- # 启用虚拟网卡
- ip link set macvlan-proxy up
-
- # 添加路由映射表,这里ip使用容器的ip
- ip route add 192.168.1.18 dev macvlan-proxy
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。