如何阻止外部访问docker容器linux centos 7

Ehs*_*har 6 docker centos7 docker-compose

我有一个 mongodb docker 容器,我只想从服务器内部访问它,而不是外部。即使我用firewall-cmd屏蔽了端口27017/tcp,但docker似乎仍然对公众可用。我正在使用 linux centos 7 和 docker-compose 来设置 docker

Jim*_*mix 2

如果您的应用程序位于一个容器中,而 MongoDb 位于另一个容器中,您需要做的就是使用设置为内部的网络将它们连接在一起。

\n\n

请参阅文档

\n\n
\n

内部
\n 默认情况下,Docker 还会连接一个桥接网络以提供\n 外部连接。如果要创建外部隔离的覆盖网络,可以将此选项设置为 true。

\n
\n\n

另请参阅这个问题

\n\n

这是有关网络的教程(不包括内部但有助于理解)

\n\n

您还可以通过为 MongoDB 配置 Linux iptables 防火墙来限制 MongoDb 上的流量

\n\n

要创建专用网络,请使用以下范围中的一些 IP:
\n10.0.0.0 \xe2\x80\x93 10.255.255.255 \
n172.16.0.0 \xe2\x80\x93 172.31.255.255
\n192.168.0.0 \xe2\ x80\x93 192.168.255.255

\n\n

更多内容请阅读维基百科

\n\n

您可以将一个容器连接到多个网络,因此应用程序容器通常会连接到外部网络(外部)和内部网络。应用程序与内部网络上的数据库进行通信,并通过外部网络将一些数据返回给客户端。数据库仅连接到内部网络,因此从外部(互联网)看不到它

\n