天天看点

Docker 与 iptables 之间的联系

本篇是第七部分“网络篇”的第三篇。在这个部分,我会为你由浅入深的介绍 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