私はWindowsでbashシェル(Mingwg64)を使用しており、dockerコンテナでbashを実行しています。
Tobi@DESKTOP MINGW64 /
$ docker run -i debian bash
ls
私が知っている限り、bash: line 1: $'ls\r': command not found
Enterキーを押すと、通常Windowsのように\r
プレフィックスがあるからです。\n
この問題に対する良い解決策を知っている人はいますか?
答え1
出荷書類ビーチdocker run
言う:
指定しない場合、
-a
Dockerはstdoutとstderrに追加します。次のように、3つの標準ストリーム(STDIN
、、、STDOUT
)STDERR
のいずれかに接続することを指定できます。$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
対話型プロセス(シェルなど)の場合は、
-i
-t
コンテナプロセスにttyを割り当てるために一緒に使用する必要があります。。これは通常、次の例に示すように-i
-t
作成されます。クライアントがパイプから標準入力を受け取るときに[...]を指定することは禁止されています。-it
-t
-it
したがって、代わりに使用する必要があります-i
。端末レイヤーには、端末入力をターゲットシステム\r\n
に変換する機会があります。\n
$ docker run -it debian bash