セットアップ:Windows 10 WSL
NASでシェルを開き、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
私は投稿を読むのに数時間を費やしましたが、それを解読することはできません。解決したら、 ConEm のホットキーを使用してセットアップし、Dockerインスタンスでシェルを開きます。
リモートセッションにTTYを割り当てるには、おそらく-t
を指定してsshを実行する必要があります。
ssh -t [email protected] -i ./qnap_001.pem "docker exec..."
^^
差し迫った問題は、Dockerを含むディレクトリがリモートシステムのPATHにないことです。これは、そのディレクトリをPATHに追加するものが実行されなかったためです。
Invoke ssh
を実行し、リモートシステムで実行するコマンドを指定すると、sshはデフォルトでリモートセッションにTTYを割り当てません。リモートシェルにはTTYがないため、リモートシェルの初期化が異なる場合があります。特に、DockerディレクトリをPATHに追加するステートメントは実行されなかった可能性があります。
Ssh -t
オプションは、セッションにTTYを割り当てるようにsshに指示します。これにより、インタラクティブセッションの場合と同じようにシェルが初期化されます。