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表示正常

docker桥接网络。_第1张图片

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]
 

docker桥接网络。_第2张图片

6.验证

 yum -y install net-tools #新的容器没有ifconfig命令 可以用这个命令下载,可以看到ip已经是43.111了

docker桥接网络。_第3张图片

 


可以看到外网可以直接访问容器了。

你可能感兴趣的:(docker桥接网络。)