by Devin Yang

建立于: 3年前 ( 更新: 3年前 )

首先Docker在Linux的环境下,Docker使用iptables规则来提供网络隔离。
然而在Docker swarm mode的环境下,我们是没辨法把连接埠开在host的127.0.0.1下的,
这时便可透过iptables中的DOCKER-USER chain来自定义规则罗 。

Docker 安装了两个名为 DOCKER-USER 和 DOCKER 的自定义 iptables 链,它确保传入的数据包始终首先由这两个链检查。

Docker 的所有 iptables 规则都添加到 DOCKER 链中。不要手动操作此链。

如果您需要添加在 Docker 规则之前加载的规则,

请使用 DOCKER-USER 链。这些规则可在 Docker 自动创建的任何规则之前激活。

例如我的nginx开了port 8081,代表了输入host的ip,加上port 8081就能访问到该主机了。

cyh3692mbacl   dlaravel_web          replicated   4/4        nginx:latest      *:8081->80/tcp

但其实我更希望是透过HAProyx才可以访问到该主机,而不是使用者开启host的ip加上port 8081就进行访问,那么解法就是调整iptables罗 。

我们可以用如下命令先查看见前的规则

iptables -nL DOCKER-USER
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

基本上是完全开放的,我们可以写个bash如下,请注意,这只是一个示意范例,请依自己的需求自行调整。
在这范例中包含了不同的网段或特定的IP及网卡。

#!/bin/bash
iptables -F DOCKER-USER
#全档只能用本地的ip访问
iptables -I DOCKER-USER -p tcp -m multiport --dports 8025,8084,30001,30020 -j DROP
#锁区网在可以连
iptables -I DOCKER-USER -i eno1 ! -s 10.0.0.26 -p tcp -m multiport --dports 8080,8081 -j DROP
iptables -I DOCKER-USER -i eno2 ! -s 192.168.88.0/24 -p tcp -m multiport --dports 3306,2222,1024 -j DROP
iptables -A DOCKER-USER -j RETURN
#列出规则
iptables -nL DOCKER-USER

在开头 ,我先清除了所有规则

iptables -F DOCKER-USER

其他就不多说了,相信大家用猜的都猜的出来。

 

 

Tags: docker

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker,php,cli

MacOS的php不给力,用docker运行laravel installer

非常简单呀,加个「别名」就好了alias laravel='docker run --rm -v ${PWD}:/var/www/html -v ~/.dlaravel/cache:/home/dlaravel/.composer/cache -ti deviny/fpm:8.1.10 /home/dlaravel/.composer/vendor/bin/laravel'

docker

关於GCE上FPM image如何变更owner

CCC网站升级php 7.2.0罗,有Docker的环境,轻松搞定php升级, 在Linux上Image的变更还是有些注意事项您应该了解。 如果您跟我一样透过docker将D-Laravel安装於Linux的系统上,当您变更不同的image时, 或许您可能会碰到,疑!怎么composer没有权限写数据夹的错误。 directory is not writable

docker

Docker防毒攻略

最近刚看玩延禧攻略,就想来介绍个MacOS扫毒攻略。 这篇文章,教大家用如何用Docker搞定MacOS扫毒。 简单介绍,我们如何透过docker使用防毒软体扫毒。 这里假定目前我的目录是在我的家目录中,所以${PWD}就是目前的所在目录,会被挂载到container内的scan数据夹。 所以,使用clamscan -r /scan/,时就能扫描所有的挡案罗,加上-r的参数会使用递归的方式一层一层的进入子目录扫描。