在Docker中转发端口时,我应该包括localhost吗



每当我想转发Docker容器中的端口时,我都会使用一个简单的-p 8080:8080命令。

现在,我在几个地方(这里和这里(读到,这可能是不安全的,我应该包括localhost环回,比如:-p 127.0.0.1:8080:8080

有人能对此有更多的了解吗?什么时候应该这样做?实际的安全影响是什么?

如果在发布端口时未指定ip地址,则已发布的端口在所有接口上都可用。也就是说,如果您运行docker run -p 8080:8080 ...,则网络上的其他系统可以访问您机器上8080端口上的服务(如果您的机器具有可公开路由的地址,则世界其他地方的系统也可以访问该服务(。(当然,您可能有主机或网络级别的防火墙规则,在任何情况下都会阻止这种访问。(

当您在端口发布规范中指定一个ip地址(如127.0.0.1:8080:8080(时,侦听端口将显式绑定到该接口。

如果侦听端口仅绑定到环回接口127.0.0.1,那么只有本地计算机上的客户端才能连接——从网络上其他设备的角度来看,这些端口不可用。

哪种配置有意义取决于(a(你想做什么(也许你公开一个可供本地机器以外的系统访问的服务(,(b(你的本地网络是什么样子,以及(c(你的风险规避水平。

最新更新