![如何使用 ssh 命令运行“docker exec”](https://linux22.com/image/230105/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ssh%20%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C%E2%80%9Cdocker%20exec%E2%80%9D.png)
不是一件有趣的事——
#!/usr/bin/env bash
ssh -i 'my.pem' "ubuntu@${addr}" "docker exec -ti '$name' bash"
我收到这个蹩脚的错误:
the input device is not a TTY
完全没有上下文。 docker 在机器上运行良好。有人知道我可以做些什么来使这项工作按预期进行吗?
我也尝试过这个,我得到了同样的错误:
ssh -i 'my.pem' "ubuntu@${hb_ip_addr}" "bash -c 'docker exec -ti '$name' bash'"
糟糕的。
答案1
答案如下: https://stackoverflow.com/a/47025876/1223975
简而言之,您需要:
ssh -tti
是的,有两个“t”参数。
真是一个噩梦般的实用程序。
所以现在这可以在zsh
我bashv5
的 macOS 机器上运行:
ssh -tti 'my.pem' "ubuntu@${addr}" "docker exec -ti $name bash"