本篇是第七部分“网络篇”的第三篇。在这个部分,我会为你由浅入深的介绍 Docker 网络相关的内容。包括 Docker 网络基础及其实现和内部原理等。上篇,我为你介绍了如何灵活的使用容器网络。本篇,我们来学习 Docker 与 iptables 之间的联系。
Docker 能为我们提供如此强大和灵活的网络能力,很大程度上要归功与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了。
(MoeLove) ➜ ~ dockerd --help |grep iptables
--iptables Enable addition of iptables rules (default true)
Docker Daemon 有个
--iptables
的参数,便是用来控制是否要启用 iptables 规则的,默认已经设置成了开启(true)。所以通常我们不会过于关注到它的工作。
本篇,为了避免环境的干扰,我将使用 Docker in Docker 的环境来为你进行介绍,通过如下方式启动该环境:
(MoeLove) ➜ ~ docker run --rm -d --privileged docker:dind
ceb59125626e4ced03f3e4fa73a09b50633ce4f001938f7a8e04804d99420efa
iptables 基础
iptables 是一个用于配置 Linux 内核防火墙的工具,可用于检测、修改转发、重定向以及丢弃 IPv4 数据包。它使用了内核的 ip_table