带有ssh的Docker exec没有给出这样的容器错误

时间:2018-05-08 17:38:49

标签: docker ssh

我正在尝试ssh使用以下命令直接进入docker容器:

CONTAINER_ID=`ssh user@host -t "docker ps | head -n 2 | tail -n 1 | cut -d' ' -f1"`
ssh -tt user@host "docker exec -it $CONTAINER_ID /bin/bash"

当我这样做时,我得到:

Error: No such container: <container_id>

即使我在实例本身上运行exec,容器就在那里,它确实让我连接。

1 个答案:

答案 0 :(得分:2)

我敢打赌你的$ CONTAINER_ID包含CRLF字符。 使用tr删除它们:

CONTAINER_ID=`ssh user@host -t "docker ps | head -n 2 | tail -n 1 | cut -d' ' -f1 | tr -d '\r\n' " `

它应该可以解决问题。

当然,您将连接到docker ps的第一个结果,无论哪个结果......