一、容器访问外部网络
容器要想访问外部网络,需要本地系统的转发支持。在Linux 系统中,检查转发是否打开。
如果为 0,说明没有开启转发,则需要手动打开。
sysctl -w net.ipv4.ip_forward=1
二、容器访问控制
容器的访问控制,主要通过 Linux 上的 iptables 防火墙来进行管理和实现。 iptables 是 Linux 上默认的防火墙软件,在大部分发行版中都自带。
每一个大的方块中,就是iptables中的一个链(chain),每一个链实际上就是数据处理中的一个环节,而在每个环节中又包含了不同的操作。
三、容器的端口映射
启动容器
Ctrl+p Ctrl+q退出容器
查看端口映射、并使用curl访问nginx界面
查看iptables规则:
我们可以看到DOCKER链中多了一个关于cct5容器的映射,这样就允许外部网络访问这个容器
查看本机ens33的ip地址:
在另外一台虚拟机上访问上面虚拟机上开启的nginx服务:
可以看到访问成功了,外部网络也可以访问docker容器!
四、限制IP访问docker容器
启动容器
Ctrl+p Ctrl+q退出容器
添加规则,限制特定ip对docker容器的访问:
查看iptables规则是否添加成功:
已经添加成功
查看端口映射:
查看本机IP:
在另外一台虚拟机上,访问上面这个虚拟机上的docker容器开启的nginx服务:
访问失败!所以测试成功!