docker桥接网络。
docker的容器默认可以访问外网,但是外网访问不了容器,可以使用端口映射的方式访问容器的服务,还有一种方法就是桥接到物理网络。
1,安装桥接相关的库文件
yum install bridge-utils
2,修改网卡文件
vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens32"
DEVICE="ens32"
ONBOOT="yes"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
BRIDGE="br0"
vi /etc/sysconfig/network-scripts/ifcfg-br0 (br0文件默认不存在的要创建出来,ip地址由br0承载)
DEVICE=br0
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
TYPE=Bridge
IPADDR=192.168.43.65
NETMASK=255.255.255.0
GATEWAY=192.168.43.1
DNS1=8.8.8.8
3.重启网络
systemctl restart network
br0上有ip表示正常
4.安装pipework工具
pipework工具可以为docker容器指定静态ip
yum install -y git
git clone https://github.com/jpetazzo/pipework #pipework要去网上下载,下载后目录底下有pipework命令
cp pipework/pipework /usr/local/bin/ #红色标注就是我们要用的命令
5.运行一个容器并为它设置ip
docker run -itd --net=none --name=centos7 centos
pipework br0 centos7 192.168.43.111/[email protected]
6.验证
yum -y install net-tools #新的容器没有ifconfig命令 可以用这个命令下载,可以看到ip已经是43.111了
可以看到外网可以直接访问容器了。