我如何才能将 Docker 容器端口仅公开给本地主机,以便它也可以通过 ssh 隧道访问?

How can I expose a Docker container port only to localhost so that it is also accessible via an ssh tunnel?

希望直截了当。我知道如何仅使用

绑定到主机
-p 127.0.0.1:$HOSTPORT:$CONTAINERPORT

我遇到的问题是这样做会阻止我通过 ssh 隧道访问映射的主机端口到 docker 主机。

有没有办法做到这一点而不必在某处阻塞 docker 主机的上游端口?

只需将您的 ssh 隧道作为目标 localhost127.0.0.1

ssh -L local-port:127.0.0.1:container-port docker-host

会在 docker-host 上将您的 local-port 转发给 localhost:container-port。无需对外暴露容器端口