【问题标题】:Docker - OS X forward localhost 22 port to container 2022 portDocker - OS X 将 localhost 22 端口转发到容器 2022 端口
【发布时间】:2016-07-22 23:25:58
【问题描述】:

我在我的 Mac OSX 上使用 Docker。

我有一个带有打开的ssh 守护进程的容器,监听端口22

虚拟机设置为将本机端口2022的所有流量转发到本容器22端口。

我想将我的本地主机设置为将所有2022 流量转发到机器2022 端口。

我的机器运行在192.168.99.100

我已经使用 Apache 虚拟主机配置和代理将 localhost 端口 8080 上的所有 HTTP 流量转发到机器。

对 ssh 执行相同操作的正确方法是什么?

我认为这涉及到here 提到的 SSH 隧道,但我不明白如何设置我的 localhost 始终将 ssh 连接从 localhost:2022 转发到 192.168.99.100:2022

附言我知道 docker 容器不应该安装 SSH,但我需要它来测试建议。

【问题讨论】:

  • 如果您在 Docker 中执行此操作,您是否尝试过使用 --port 标志映射 2022:2022?
  • 在运行命令中,我使用了 -p 2022:22 将机器(192.168.99.100:2022)连接到容器(容器:22),现在我想在我的 localhost:2022 之间连接到机器:2022
  • 好的,在这种情况下,您所做的是将容器的端口 (2022) 发布到机器的端口 (22)。现在,如果我理解正确,您应该使用 -p 2022:2022

标签: macos ssh docker docker-machine


【解决方案1】:

现在我想将我的 localhost:2022 连接到机器:2022

然后您需要您的 boot2docker 虚拟机(由 docker-machine 创建)将端口 2022 端口转发到您的 MacOS 主机。
以“docker nginx container not receiving request from outside, connection refused”为例。

VBoxManage controlvm "default" natpf1 "tcp-port2022,tcp,,2022,,2022"
VBoxManage controlvm "default" natpf1 "udp-port2022,udp,,2022,,2022"

注意:这与 ssh 无关,仅与您将 VM 用作 Linux 主机这一事实有关,并且您已将某些内容映射到其端口 2022。
仅当您进行端口转发时,该端口才会从您的实际 MacOS 本地主机中可见。

【讨论】:

  • 您能指导一下在哪里可以找到有关它的信息吗?
  • @AsafNevo 在您发表评论时我仍在编辑答案。我已经添加了相关的 VBoxManage 命令。
  • That port will be visible from your actual MacOS localhost only if you port-forward it.是什么意思我应该如何转发它
  • @AsafNevo “我应该如何转发它?”:通过键入我在答案中提到的两个命令:您使用的 Linux VM 需要按顺序将这些端口转发到您的实际 MacOS 主机让所述 MacOS 主机使用“localhost”访问 2022。
猜你喜欢
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 2014-10-08
  • 1970-01-01
相关资源
最近更新 更多