我的目标是将 docker 容器的访问权限限制为几个公共 IP 地址。是否有一个简单、可重复的过程来实现我的目标?在使用 Docker 的默认选项时只了解 iptables 的基础知识,我发现这非常困难。
我想运行一个容器,使其对公共 Internet 可见,但只允许来自选定主机的连接。我希望设置 REJECT 的默认 INPUT 策略,然后只允许来自我的主机的连接。但是 Docker 的 NAT 规则和链妨碍了我的 INPUT 规则。
鉴于以下假设,有人可以提供一个如何实现我的目标的例子吗?
docker run -d -p 3306:3306 mysql
我很高兴将容器仅绑定到本地 ip 地址,但需要有关如何正确设置 iptables 转发规则的说明,以便在 docker 进程和主机重新启动后继续存在。
谢谢!
我有一个 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)