【问题标题】:Docker - ssh by container nameDocker - 按容器名称 ssh
【发布时间】:2017-08-21 17:19:12
【问题描述】:
我想通过容器名称轻松 ssh 到 docker 容器。
现在要 ssh 到我需要调用的容器:
docker ps
返回:
CONTAINER ID IMAGE
<container_id> myContainer
并复制 CONTAINER_ID 以执行命令:
docker exec -ti <container_id> /bin/bash/
我有很多容器,通过 IMAGE 名称进行 ssh 会容易得多。
是否可以不编写自定义 bash 脚本?
【问题讨论】:
标签:
bash
docker
ssh
docker-compose
【解决方案1】:
一般来说,只要不是在每个容器内都安装 SSH 客户端,就不可能在一个容器内“ssh”。
请注意,您可以使用container name 而不是container id 将命令(在您的情况下为/bin/bash)执行到正在运行的容器中。
例如,给定一个像这样的容器:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b3068b4e51c registry_registry "/entrypoint.sh /e..." 4 months ago Up 2 hours 0.0.0.0:5000->5000/tcp registry_registry_1
运行以下 2 个命令会导致相同的结果:
docker exec -ti 5b3068b4e51c /bin/bash
docker exec -ti registry_registry_1 /bin/bash
此外,通常情况下,您可以为同一个映像运行多个容器,因此您想要实现的目标(按映像名称输入容器)并不安全。