Linux
Windows 上 mingw 下 Docker 中的互動式 bash
我在 Windows 上使用 bash shell (Mingwg64) 從 docker 容器執行 bash。
Tobi@DESKTOP MINGW64 / $ docker run -i debian bash ls
給出了結果:據
bash: line 1: $'ls\r': command not found
我所知,這是因為當我按下輸入鍵時\r
,通常會有一個前綴\n
- 因為我在 Windows 上。任何人都知道一個很好的解決方法嗎?
的文件
docker run
告訴:如果您沒有指定
-a
,那麼 Docker 將附加到 stdout 和 stderr 。您可以指定要連接到三個標準流 (STDIN
,STDOUT
,STDERR
) 中的哪一個,如下所示:$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
對於互動式程序(如shell),您必須
-i
-t
一起使用才能為容器程序分配一個tty。正如您將在後面的範例中看到的那樣,-i
-t
通常會這樣寫。當客戶端從管道接收其標準輸入時,禁止-it
指定-t
$$ … $$
所以你應該使用
-it
而不是-i
:tty層將有機會將終端輸入\r\n
轉換\n
為目標系統:$ docker run -it debian bash