社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
给容器分配局域网IP
docker-ip
#!/bin/sh
exec docker inspect --format '{{.NetworkSettings.IPAddress }}' "$@"
docker-pid
#!/bin/sh
exec docker inspect --format '{{ .State.Pid }}'"$@"
将文件增加执行权限chmod +x docker-pid chomod +x docker-ip
放入/usr/local/bin
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
解压&& 进入目录
# ./autogen.sh
# ./configure --without-ncurses && make
# cp nsenter /user/local/bin
222.211.65.74是docker 容器所在主机em1网卡ip,222.211.65.79是需要给容器分配的公网地址
#! /bin/bash
set -x
IP="222.211.65.79"
MASK="255.255.255.192"
GATEWAY="222.211.65.65"
DNS="61.139.2.69"
brctl addbr br-eth
ip link set br-eth up
brctl addif br-eth em1
ip addr add 222.211.65.74/26 dev br-eth
brctl show br-eth
ip addr show br-eth
ip addr del 222.211.65.74 dev em1
#ip addr add 192.168.0.142 dev br-eth
ifconfig br-eth 222.211.65.74 netmask $MASK
# change route infos
ip route del default
ip route add default via $GATEWAY dev br-eth
ip route
docker run -itd --namehost hub.ghostcloud.cn/ubuntu:14.04
ip link add host-inttype veth peer name host-ext
brctl addifbr-eth host-ext
ip link set host-ext up
ip link set netns $(docker-pid host) dev host-int
#start host-int
nsenter -t $(docker-pid host) -n ip link set host-int up
#config container ip
nsenter -t $(docker-pid host) -n ip addr add $IP/26 dev host-int
#add route to container
nsenter -t $(docker-pid host) -n ip route del default
nsenter -t $(docker-pid host) -n ip route add default via$GATEWAY dev host-int
nsenter -t $(docker-pid host) -n echo "nameserver$DNS" >> /etc/resolv.conf
主机gc03-000000-0009ping容器(222.211.65.79):
2 容器ping局域网主机:
公司局域网ping容器:
检查主机路由:
检查br-eth网桥
检查容器内部路由
检查host-ext和host-int
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!