我想通过 ssh 连接到我的 NAS 并连接到在那里运行的 docker 实例,我该怎么做?

我想通过 ssh 连接到我的 NAS 并连接到在那里运行的 docker 实例,我该怎么做?

设置: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 以与交互式会话相同的方式初始化自身。

相关内容