【问题标题】:How to connect docker container via ssh?如何通过 ssh 连接 docker 容器?
【发布时间】:2015-09-19 18:53:33
【问题描述】:

我在这个教程中使用: https://docs.docker.com/examples/running_ssh_service/ 我已经完成了上述步骤,我使用 docker ps 查找端口,并在输入此命令时假设我的端口是 32769:

ssh root@192.168.1.2 -p 32769

它只是告诉我:

ssh root@localhost -p 32769 ssh:连接到主机localhost端口32769: 连接被拒绝

这是有关“docker ps”命令的信息:

bash-3.2$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
5e22e16a7742        liuxin/centos:ssh   "/bin/sh -c '/usr/sb   40 minutes ago      Up 40 minutes       0.0.0.0:32769->22/tcp    c_ssh_centos        
eaa412773bb2        registry            "docker-registry"      2 hours ago         Up 2 hours          0.0.0.0:5000->5000/tcp   registry            

我使用 Mac OS X 并打开了远程登录。 我不知道如何使连接成功。 谢谢

【问题讨论】:

标签: ssh docker boot2docker


【解决方案1】:

如果 ssh 告诉您它正在尝试连接到 localhost,那么这就是您的问题。 Docker 不能在 Mac 上本地运行。相反,它在一个拥有自己 IP 地址的 VM 中运行,这就是您需要连接的地方。

假设您使用的是docker-machine,您可以这样做:

$ docker-machine ls
NAME   ACTIVE   DRIVER         STATE     URL                          SWARM
dev    *        vmwarefusion   Running   tcp://192.168.201.162:2376

这表明我有一个名为“dev”的活动 VM 作为我的 Docker 机器。那我就可以跑了

ssh root@$(docker-machine ip dev) -p 32769

要 ssh 到适当的 IP 地址。

【讨论】:

  • 感谢您的回答。但我使用 docker-machine,它只是显示“找不到命令”。我用的是boot2docker,这种情况应该怎么办?
  • 我使用“boot2docker ip”,然后它显示“192.168.59.103”。它工作。谢谢。