如何通过 ssh 连接 docker 容器?

How to connect docker container via ssh?

我在这使用教程: 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: connect to host localhost port 32769: Connection refused

这是关于 "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            

我用的是MacOSX并且已经开通了远程登录。 我不知道如何使连接成功。 谢谢

如果 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" 的活动虚拟机作为我的 Docker 机器。那我可以运行

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

通过 ssh 连接到适当的 IP 地址。