Linux

Windows 上 mingw 下 Docker 中的互動式 bash

  • November 16, 2021

我在 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而不是-itty層將有機會將終端輸入\r\n轉換\n為目標系統:

$ docker run -it debian bash

引用自:https://unix.stackexchange.com/questions/677823