【发布时间】:2020-11-01 06:20:10
【问题描述】:
我有容器在远程 VPS 上的 docker-compose 网络中运行。我希望能够从我的本地主机访问在这些容器之一中运行的数据库。
例如,如果容器app 和db 在VPS 上的容器网络中,我想从我的机器的 localhost:5432 访问db:5432。 Kubernetes 的 CLI 允许使用 kubectl port-forward <service-name> 5432:5432。
是否有任何现有的解决方案可以在现有的 unix 命令和 Docker 的 API 中实现这种效果?我在 Internet 上的搜索没有找到任何 CLI 来执行此操作。
干杯。
编辑:我已经接受了 Ali Tou 的回答,但是,很高兴看到不需要重新启动容器来重新配置其端口以将它们公开到主机的解决方案。
编辑 2: 我在与切线相关的帖子 https://stackoverflow.com/a/42071577/12406113 中发现了一种使用 socat 在 Docker 网络中转发流量的巧妙方法。然而,这是公开暴露端口而不是创建隧道,例如在 SSH 解决方案中。
【问题讨论】:
-
转发到你的本地主机有什么意义?
-
@AliTou - 在我的情况下,它会在开发过程中作为合作伙伴在同一个数据库上工作。它对于使用首选客户端调试数据库和一般故障排除也很有用。
-
你有 ssh 访问目标机器的权限吗?
-
您需要将本地端口映射到您的 VPS 端口,我认为下面的教程很有用,您也可以随时使用 SSH 进行端口映射,正如@AliTou 指出的devops.ionos.com/tutorials/…
-
这不是编程问题,可能更适合 superuser.com。
标签: docker unix networking ssh containers