仅将Docker端口公开到内部网络

时间:2019-05-09 02:33:03

标签: docker docker-compose

现在正在为家庭实验室服务器的新版本上运行大量docker,并尝试确保所有内容均已锁定并安全。我将服务器用于各种各样的事情,既需要外界的访问(nextcloud),也需要我只能从内部网络(plex)访问的东西。当然,服务器位于限制开放端口但要寻求额外安全性的路由器后面-我想将我只想通过内部网络访问的docker限制为192.168.0.0/24。这样,如果我的路由器上的某个端口打开了,它就不会被暴露(我是偏执狂吗?)。

当前docker-compose文件正在通过以下方式公开端口:

....

 ports:
   - 8989:8989
....

这当然可以正常工作,但是如果我打开路由器上的端口,那么全世界都可以访问。我知道我可以通过

绑定到本地主机
....
 ports:
   - 127.0.0.1:8989:8989
....

但是当我尝试从内部网络访问docker时,这无济于事。我已经阅读了许多有关docker网络和各种标志的文章,还阅读了关于iptables解决方案的信息。

非常感谢任何指导。

谢谢

1 个答案:

答案 0 :(得分:1)

仅在docker-compose中不声明任何端口,它们在容器之间自动可见。

我以这种方式使用elasticsearch容器,一个单独的kibana可以通过yml上确定的服务器名称连接到它。


  

如果我的路由器上的某个端口打开了,它就不会被暴露

使用此过程,端口在docker环境之外(即本地网络中==外部)永远不可见。

如果您担心在执行我告诉您的过程时端口在您的LAN中发布,则不会。