设置:Windows 10 WSL
在 NAS 上打开 shell 然后连接到 docker 实例的工作命令
ssh [email protected] -i ./qnap_001.pem
[~] # docker exec -it ubuntu /bin/bash
root@ubuntu:/#
现在我想通过 ssh 连接到 docker 实例,但是这不起作用。
ssh [email protected] -i ./qnap_001.pem "docker exec -it ubuntu /bin/bash"
返回
sh: docker: command not found
我花了几个小时阅读帖子,但无法破解它。解决后,我会在康埃穆在docker实例中打开shell
答案1
您可能需要运行 ssh 来-t
为远程会话分配一个 TTY:
ssh -t [email protected] -i ./qnap_001.pem "docker exec..."
^^
您当前的问题可能是包含 docker 的目录不在远程系统的 PATH 中,因为将该目录添加到 PATH 中的任何操作都没有执行。
当您运行invokessh
并指定要在远程系统上运行的命令时,默认情况下,ssh不会为远程会话分配TTY。远程shell可能会以不同的方式初始化自身,因为它没有TTY。特别是,它可能没有执行将docker目录添加到PATH的任何语句。
ssh-t
选项指示 ssh 为会话分配 TTY。这将导致您的 shell 以与交互式会话相同的方式初始化自身。