运行 可以通过 SSH 进入的本地 docker 容器

Run local docker container that can be SSHed into

我正在尝试测试对 Capastrano 应用程序的一些更改。我希望在本地 运行 一个 docker 容器,我的应用程序可以通过 SSH 进入,这样我就可以 运行针对容器发出命令并观察会发生什么。

我在看 https://hub.docker.com/r/rastasheep/ubuntu-sshd/。我可以通过 ssh root@localhost -p 49154 ssh 进入,但我需要能够通过它的 IP 和端口 22 访问,例如ssh root@172.17.0.2 但这会超时。

我怀疑我需要做一些 docker 网络类型的东西才能让它工作。有什么想法吗?

你可以试试:

docker exec -it <container_id> bash

这实际上会让您获得容器的 shell,并使您能够查看容器内部发生的情况并对其进行调试。

阅读 Capastrano 文档后,我意识到我可以在定义角色时提供端口。所以我可以用

调出容器
docker run -d -P -p 32770:22 --name server rastasheep/ubuntu-sshd:14.04

并附加到它:

role :cost_app, "root@localhost:32770"