3

主な懸念事項

  • curl私は自分のリクエストを実行するために使用します。postman でリクエストを実行しても、TTY の有効化と無効化の間に大きな違いは見られないようです。
  • Stderr は、TTY を有効にした状態で表示されますが、TTY を無効にした状態では表示されません。AttachStderr は両方に対して true に設定されます ( を使用curl)。
  • 標準出力は、TTY が有効になっている (を使用curl) で「不完全」です。

=========================================

Docker Remote API で疑似 tty をいつ割り当てるか、いつ割り当てないかを理解しようとして苦労しています。出力は非常に異なります(エラーがあったかどうか、および私がよく理解していないその他のものによって異なります)。

curl を使用してリクエストを実行しています。

例:

TTY なし:

# ls on a container
curl --unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d  '{"AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "Tty": false, "Cmd": [ "ls" ] }' http:/containers/mycontainer/exec
curl --unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d  '{"Detach": false, "Tty": true }' http:/exec/5b2a3882e04432180806deffd7d9417d9f75b439022bce16211c296beb158319/start

これは以下を出力します:bin boot dev etc exports home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

Tty: true出力 と同じコマンドboot etc home lib64 mnt proc run srv tmp varsr

ただし、エラーが発生するようなことをしようとすると、次のようになります。

TTY なし:

# ls /non/existant/path
curl --unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d  '{"AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "Tty": false, "Cmd": [ "ls", "/non/existant/path" ] }' http:/containers/mycontainer/exec
curl --unix-socket /var/run/docker.sock -s -H "Content-Type: application/json" -X POST -d  '{"Detach": false, "Tty": true }' http:/exec/11d9bff545d99e64bc1c82b540966e2cceaa48c98fbde851378cdb5de9cae663/start

TTY がないと、出力が表示されません。

TTY の場合:ls: cannot access '/non/existant/path': No such file or directory

どうしたの?

ありがとうございました。

4

1 に答える 1