【Docker学习总结】16.Docker容器与外网的连接

一、容器访问外部网络

     容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。

     

   如果为 0,说明没有开启转发,则需要手动打开。

 sysctl -w net.ipv4.ip_forward=1

二、容器访问控制

     容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。 iptables 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。

                              【Docker学习总结】16.Docker容器与外网的连接_第1张图片

    每一个大的方块中,就是iptables中的一个链(chain),每一个链实际上就是数据处理中的一个环节,而在每个环节中又包含了不同的操作。

三、容器的端口映射

启动容器

【Docker学习总结】16.Docker容器与外网的连接_第2张图片

Ctrl+p Ctrl+q退出容器

查看端口映射、并使用curl访问nginx界面

【Docker学习总结】16.Docker容器与外网的连接_第3张图片

查看iptables规则:

【Docker学习总结】16.Docker容器与外网的连接_第4张图片

我们可以看到DOCKER链中多了一个关于cct5容器的映射,这样就允许外部网络访问这个容器

查看本机ens33的ip地址:

【Docker学习总结】16.Docker容器与外网的连接_第5张图片

在另外一台虚拟机上访问上面虚拟机上开启的nginx服务:

【Docker学习总结】16.Docker容器与外网的连接_第6张图片

可以看到访问成功了,外部网络也可以访问docker容器!

四、限制IP访问docker容器

启动容器

【Docker学习总结】16.Docker容器与外网的连接_第7张图片

Ctrl+p Ctrl+q退出容器

添加规则,限制特定ip对docker容器的访问:

查看iptables规则是否添加成功:

【Docker学习总结】16.Docker容器与外网的连接_第8张图片

已经添加成功

查看端口映射:

查看本机IP:

【Docker学习总结】16.Docker容器与外网的连接_第9张图片

 

在另外一台虚拟机上,访问上面这个虚拟机上的docker容器开启的nginx服务:

访问失败!所以测试成功!

 

 

 

你可能感兴趣的:(【Docker学习总结】16.Docker容器与外网的连接)