我正在尝试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
,容器就在那里,它确实让我连接。
答案 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
的第一个结果,无论哪个结果......