如何在Docker中更新iptables?

时间:2019-06-20 14:58:56

标签: docker iptables

我在一台服务器上有以下规则。有一个单独的链称为DOCKER

iptables -L
Chain DOCKER (2 references)
ACCEPT     tcp  --  anywhere             112.13.0.4           tcp dpt:https
ACCEPT     tcp  --  anywhere             112.13.0.4           tcp dpt:http
ACCEPT     tcp  --  anywhere             112.13.0.4           tcp dpt:ssh

我需要在另一台服务器上添加完全相同的规则。基本上,我试图将端口80、443和22暴露给Intranet,但我不知道该怎么做。我尝试查看iptables文档,但似乎没有一件简单的事情。我的问题是如何在不干扰现有规则的情况下将上述规则添加到iptables中?

1 个答案:

答案 0 :(得分:0)

如果您尝试公开端口,您所需要做的就是在docker run或docker service create上提供-p指令。 Docker将管理到主机的端口映射,而Userland代理将相应地过滤流量。如果在另一侧没有监听,则防火墙规则不会执行任何操作。

docker run d --name tutum -p 80:80 tutum/hello-world

$:~ user$ docker run -d -p 80:80 --name tutum tutum/hello-world
Unable to find image 'tutum/hello-world:latest' locally
latest: Pulling from tutum/hello-world
658bc4dc7069: Pull complete
a3ed95caeb02: Pull complete
af3cc4b92fa1: Pull complete
d0034177ece9: Pull complete
983d35417974: Pull complete
Digest: sha256:0d57def8055178aafb4c7669cbc25ec17f0acdab97cc587f30150802da8f8d85
Status: Downloaded newer image for tutum/hello-world:latest
2673c45c70f9ac153236ddb4fbeb4d54e7953742dea60c3f8e3c1e7d718d68e0
$:~ user$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2673c45c70f9        tutum/hello-world   "/bin/sh -c 'php-fpm…"   4 seconds ago       Up 2 seconds        0.0.0.0:80->80/tcp       tutum

这时,主机将在端口80上侦听。所有您需要做的就是管理流量如何到达主机。