如何通过 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 地址。
我在这使用教程: 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 地址。