docker学习(六)docker容器与外部网络的互联

docker容器与外部网络的连接

ip_forward: 本身是linux系统中的一个变量,他的值决定了系统是否会转发流量。在docker守护进程的默认参数中也有ip_forward这个参数默认为true。当使用这个默认值时,docker会在守护进程启动时,将系统的ip_forward设置为1,也就是允许流量转发。

查看数据转发是否开启

$sysctl net.ipv4.conf.all.forwarding

iptables:iptables是与Linux内核集成的包过滤防火墙系统,几乎所有的Linux发行版本都会包含iptables的功能。

iptables的三个层级

表(table):iptables将同样的操作抽象为iptables中的表
链(chain):代表了数据处理中的不同环节,或者说不同的阶段。
规则(rule):每个链下的操作。基本有ACCEPT(同意) REJECT(拒绝) DROP(放弃)

在这里我们主要使用的是iptables中的filter表,中间包含了INPUT,FORWARD,OUTPUT三个链,
查看iptables

sudo iptables -t 表名 -L -n//也可以不指定表名,默认为filter表

可以看到其中包含了INPUT,FORWARD,OUTPUT三个链,同时包含了名为docker的链(这个链其实使,forward中docker的子链)。
而下面的ACCEPT REJECT DROP为每个链的操作

阻止特定IP对特定容器的访问

$sudo iptables -I DOCKER -s 10.211.55.3 -d 172.17.0.7 -p TCP --dport 80 -j DORP

要阻止特定ip对特定容器的访问我们需要在iptables中添加一个新的规则,这个规则指定一个访问的原地址10.211.55.3,目的地址是172.17.0.7也就是docker容器的地址。使用的协议指定为TCP协议,目的端口定义为80端口,所需要的操作是要阻止访问就要选DROP

你可能感兴趣的:(docker学习(六)docker容器与外部网络的互联)