저는 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에 추가합니다. 다음과 같이 세 가지 표준 스트림(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