为了简化 Docker 容器之间的服务端口管理,我希望允许包含的 HTTP 服务侦听其各自容器 IP 地址的 HTTP 的默认 TCP 端口 80。
收听低于 1025 的端口号通常仅限于具有特殊权限的用户,例如root
. 这样做的原因,据我了解,是为了禁止多用户系统上的非特权用户充当整机的权威HTTP服务。
在较新的 Linux 版本中,还可以通过应用 Linux 内核功能允许对特定的可执行文件执行此操作CAP_NET_BIND_SERVICE
。为了在 Docker 容器中工作,我似乎还需要通过--add-cap
Docker 客户端上的标志或 Docker-Composecap_add
部分将此功能应用于 Docker 容器本身。
从理论上讲,这种端口号限制的原因在这种情况下已经过时了,因为 Linux 内核的网络命名空间允许容器内的进程只绑定它们自己专有的 IP 地址。
我现在的问题是,是否有任何关于这样做的严重警告。这是否或可能以任何方式成为我未考虑的安全问题?或者这样做还有其他问题吗?