Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅向内部网络公开docker端口_Docker_Docker Compose - Fatal编程技术网

仅向内部网络公开docker端口

仅向内部网络公开docker端口,docker,docker-compose,Docker,Docker Compose,正在homelab服务器的新版本上运行大量Docker,并尝试确保所有内容都已锁定和安全。我使用服务器处理各种事情,既需要从外部世界(nextcloud)访问,也需要从内部网络(plex)访问。当然,服务器位于限制开放端口的路由器后面,但需要额外的安全性-我想将我只想通过内部网络访问的Docker限制为192.168.0.0/24。这样,如果我的路由器上的某个端口以某种方式打开,它就不会被暴露(我是不是有妄想症?) 当前docker compose文件通过以下方式公开端口: .... por

正在homelab服务器的新版本上运行大量Docker,并尝试确保所有内容都已锁定和安全。我使用服务器处理各种事情,既需要从外部世界(nextcloud)访问,也需要从内部网络(plex)访问。当然,服务器位于限制开放端口的路由器后面,但需要额外的安全性-我想将我只想通过内部网络访问的Docker限制为192.168.0.0/24。这样,如果我的路由器上的某个端口以某种方式打开,它就不会被暴露(我是不是有妄想症?)

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

....

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

....
 ports:
   - 127.0.0.1:8989:8989
....
但当我试图从内部网络访问docker时,这对我没有帮助。我读过许多关于docker网络和各种标志的文章,也读过关于iptables解决方案的可能性

非常感谢您的指导


谢谢,

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

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


如果我的路由器上有一个端口以某种方式打开了,它就不会暴露出来

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


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

谢谢-容器之间的通信不是问题。当我在笔记本电脑上时,我需要访问服务器上运行的web应用程序,因此某些端口需要暴露给主机。你必须从局域网外访问微服务吗?