programing

Windows에서 도커 오류: 입력 장치가 TTY가 아닙니다.minty를 사용하는 경우 명령 앞에 'winpty'를 붙여 보십시오.

oldcodes 2023. 4. 29. 09:53
반응형

Windows에서 도커 오류: 입력 장치가 TTY가 아닙니다.minty를 사용하는 경우 명령 앞에 'winpty'를 붙여 보십시오.

실행한 후

docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

다음 오류가 발생합니다.

입력 장치가 TTY가 아닙니다.minty를 사용하는 경우 명령 앞에 'winpty'를 붙여 보십시오.

여기서 무엇을 사용해야 합니까?저는 MINGW64의 윈도우 8에서 도커를 실행하고 있습니다.

오류 메시지가 표시되는 대로 winpty(기본적으로 Git-Bash와 함께 설치됨)를 사용하여 다음을 실행해야 합니다.

winpty docker run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

으로 추가하지 할 수 .winpty항상:

echo "alias docker='winpty docker'" >> ~/.bashrc

또는

echo "alias docker='winpty docker'" >> ~/.bash_profile

Git Bash를 사용하는 경우 다음과 같이 시도할 수 있습니다.

winpty docker run -it ubuntu

는 이문는에실때발다니생합행할과 함께 할 때 합니다.-it윈도우즈에서 bash 터미널을 사용하는 옵션입니다.Powershell을 사용하여 이 문제를 해결할 수 있습니다.

이것은 나에게 효과가 있습니다.나는 창문에 깃배시를 사용하고 있습니다.

winpty docker-compose exec app ls -l

제다한을 합니다.-it명령에 따라.대화형으로 유지하려면 다음을 수행합니다.-i

사용하지 alias docker="winpty docker"그것은 당신의 문제를 해결하지만 파이프를 부러뜨립니다.

$ winpty docker run -ti ubuntu
root@e85cff7d1670:/# exit

$ wintpy docker run ubuntu bash HELLO 
HELLO

$ wintpy docker run ubuntu bash HELLO | cat
stdout is not a tty

합니다.bashrc에 복사합니다.이 스크립트는 다음을 사용합니다.winpty docker경우에 한하여-ti사용됩니다.

function docker(){
  for param; do if [[ "$param" == "-ti" ]] || [[ "$param" == "-it" ]]; then 
    winpty docker "$@"; return
  fi; done; 
  command docker "$@"
}

docker run -ti ubuntu 되다winpty docker run -ti ubuntu피하다, 피하다, 피하다error: the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'"

docker run ubuntu echo "what's up" | cat 되다command docker run echo "what'up" | cat피하다, 피하다, 피하다error: stdout is not a tty

스크립트는 '-it' 매개 변수가 'docker run' 문장 안에 있는지 확인하지 않고 '-it' 매개 변수가 있는지만 확인합니다.하지만 제 용도에는 도움이 됩니다.

"도커 퀵스타트 터미널"을 시작했습니까?도망치려고 했어요

$ docker run -i -t redcricket/react-tutorial:latest /bin/bash

Cygwin bash 셸의 창에서 동일한 오류가 발생했습니다.

the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

그러고 나서 제가 윈도우 10 시스템에 도커를 설치했을 때 "도커 퀵스타트 터미널"이라는 것이 설치되었다는 것을 기억했습니다.작업 표시줄의 '검색하려면 여기에 입력'이라는 멍청한 창에서 먼저 이 작업을 시작해야 합니다.

여기에 이미지 설명 입력

그러면 이 기능이 시작됩니다.

여기에 이미지 설명 입력

오류가 발생하거나 winpty를 실행하지 않고 도커 명령을 실행할 수 있습니다.

깃바시에 문제가 있지만 파워셸에 문제가 없습니다.

나한테 일어난 일.Docker Toolbox를 실행하는 윈도우즈 8의 Git Bash에서.두 가지 일이 일어나고 있습니다.gitbash부터 Docker 데몬에 대한 완전한 권한 상승은 아닌 것 같습니다(관리 권한으로 gitbash를 실행하고 있음에도 불구하고).따라서:

  1. 도커 터미널에서 명령을 실행해 보십시오.(권한 부여).

  2. Windows(윈도우)의 폴더 이름 지정 형식에서 발생하는 오류를 보완하려면 경로를 따옴표로 묶는 것을 잊지 마십시오.(공백 및/또는 대문자 오류를 피하기 위해) 말합니다.

시작:

docker run -v $(pwd):/data image_ref

받는 사람:

docker run -v "$(pwd):/data" image_ref

(뒤에 있는 인용문을 뒤에 붙입니다.)$(pwd):/data).

cmd 시작 부분에 'winpty'를 추가하면 됩니다. 아래를 시도해 보십시오.

$ winpty docker.exe run --rm -v "/c/users/vipul rao/documents/github/wappalyzer:/opt/wappalyzer" -it wappalyzer/dev

왜 이런 일이 일어날까요?자세한 내용은 여기에서 확인하십시오. http://willi.am/blog/2016/08/08/docker-for-windows-interactive-sessions-in-mintty-git-bash/

는 실행중이오발다니습생했가류에▁running▁this▁for▁error를 실행한 것에 대해 발생했습니다.docker-compose exec workspace bash

그래서 그냥 윈티로 접두사를 붙이세요.winpty docker-compose exec workspace bash

도커 터미널 내에서 명령을 실행하지 않을 수 있습니다.그렇지 않으면 Docker 데몬에 제대로 연결되지 않아 올바르게 상호 작용할 수 없습니다.

실제 도커 터미널에서 명령을 실행하고 있는지 확인합니다.

WSL을 사용하고 cmder 또는 conemu 내부의 윈도우용 도커를 실행하는 사람들에게는 'Program Files'의 윈도우에 설치된 도커를 사용하지 말고 Ubuntu/linux에 WSL 내부에 도커를 설치하는 것이 좋습니다.WSL 내에서는 Docker 자체를 실행할 수 없지만 WSL에 설치된 Linux Docker 클라이언트에서 Windows에서 실행 중인 Docker에 연결해야 합니다.

WSL에 도커를 설치하려면

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce

실제 도커 명령을 실행하기 위한 옵션은 다음 중 하나입니다. 스위치 -H를 사용하여 도커에 연결

docker -H localhost:2375 run -it -v /mnt/c/code:/var/app -w "/var/app" centos:7

또는 환경 변수 docker_host를 설정합니다.

export DOCKER_HOST=tcp://localhost:2375

어느 쪽이든 이제 실행 중인 도커 컨테이너에 대화형으로 연결할 수 있습니다.

당신은 Cmder 도구로 시도할 수 있습니다. 그것은 작동할 것입니다.깃바시와 함께 작동하지 않습니다.

위에 언급된 솔루션 외에도.도커 첨부에 대해 이 오류가 발생하는 경우

:docker attach alpine1

오류:the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'

솔루션:도커 명령 앞에 윈티를 추가합니다. 즉, 윈티 도커 연결이 작동해야 합니다.

:winpty docker attach alpine1

참고: Windows 기반을 사용하는 동안 이 오류가 발생하여 이 솔루션이 제대로 작동했습니다.

실행을 시도할 때 동일한 오류가 발생했습니다.docker-compose exec지권휘도움말 설명서에 나와 있습니다.docker-compose exec --help에는 추가여의사하할당을비다-tty활성을 .-T다음과 같은 방법으로 명령 옵션에 추가할 수 있습니다.

docker-compose exec -T

도움말 문서에서 다음을 수행합니다.

-T Disable pseudo-tty allocation. By default docker-compose exec allocates a TTY.

Gitbash를 사용하는 경우 Gitbash와 함께 사용할 터미널 에뮬레이터를 설정할 때 문제가 발생합니다.에뮬레이터 설정

대신 에뮬레이터를 첫 번째 옵션으로 변경하거나 다음을 사용할 수 있습니다.
도커 실행 명령 전 winpty 명령

언급URL : https://stackoverflow.com/questions/48623005/docker-error-on-windows-the-input-device-is-not-a-tty-if-you-are-using-mintty

반응형