相关疑难解决方法(0)

使用 iptables 限制与 docker 容器的外部连接的步骤?

我的目标是将 docker 容器的访问权限限制为几个公共 IP 地址。是否有一个简单、可重复的过程来实现我的目标?在使用 Docker 的默认选项时只了解 iptables 的基础知识,我发现这非常困难。

我想运行一个容器,使其对公共 Internet 可见,但只允许来自选定主机的连接。我希望设置 REJECT 的默认 INPUT 策略,然后只允许来自我的主机的连接。但是 Docker 的 NAT 规则和链妨碍了我的 INPUT 规则。

鉴于以下假设,有人可以提供一个如何实现我的目标的例子吗?

  • 在 eth0 上托管公共 IP 80.80.80.80
  • 在 eth1 上托管私有 IP 192.168.1.10
  • docker run -d -p 3306:3306 mysql
  • 阻止与主机/容器 3306 的所有连接,主机 4.4.4.4 和 8.8.8.8 除外

我很高兴将容器仅绑定到本地 ip 地址,但需要有关如何正确设置 iptables 转发规则的说明,以便在 docker 进程和主机重新启动后继续存在。

谢谢!

iptables docker

33
推荐指数
4
解决办法
5万
查看次数

Docker - 可从外部访问的暴露端口 - iptables 规则被忽略

我有一个 docker 容器运行如下:

 docker run --name some_container_1 -p 8080:80 -d some_image
Run Code Online (Sandbox Code Playgroud)

哪个工作正常。容器将它的端口 80 公开到 8080,并且可以从本地主机访问。

然而,出于某种原因,它完全忽略了 INPUT iptables 规则,并且也可以从外部访问。

如何限制对我的 Docker 容器的访问,只允许 ie IP 123.456.789.0 从外部访问它?

谢谢。


须藤 iptables -L -n -v --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
2      365 23380 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3        0     0 ACCEPT     tcp  --  * …
Run Code Online (Sandbox Code Playgroud)

iptables docker

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

docker ×2

iptables ×2