도커 : 도커 컨테이너에서 나노 실행


128

대화식 쉘을 도커 컨테이너에 엽니 다.

sudo docker exec -t -i {container_name} bash

지금까지는 좋지만 실행하려고하면 다음과 같은 nano결과가 발생합니다.

터미널 열기 오류 : 알 수 없습니다.


이것은 어떤 용기입니까? 또한 PATH 변수는 어떻게 생겼습니까?
Usman Ismail

답변:


196

Docker Issue # 9299 와 관련이 있다고 생각합니다 .

이 문제에 대해 몇 가지 해결 방법이 있습니다.

  • pseudo-TTY를 할당하는 컨테이너를 실행하십시오 (옵션 -t).
  • 수출 환경 변수 $ TERM = 간부의 용기의 프로세스 실행에서 xterm을 (예 : export TERM=xterm)

주요 문제는 실제로 것 같다 이 한
피에르 드 LESPINAY에게

2
의사 TTY를 할당하는 것은 효과가 없었지만 변화했습니다 TERM.
Nathan Osman

이 문제는 환경에 따라 좌절됩니다. Windows 10에서 Docker for Windows를 사용하는 Centos 8의 TERM=xterm-color경우 나 에게만 효과가있는 것 같습니다. serverfault 답변 .
mdisibio

123

comand를 실행하십시오. export TERM=xterm


1
다시 한번 확인하기 위해. 도커 컨테이너를 다시 시작하지 않고. apt-get nano를 설치하십시오. 그런 다음 TERM = xterm을 내 보냅니다. 그런 다음 nano file.txt. 도커 컨테이너를 다시 시작하면이 문제가 해결되지 않습니다.
Chad

잘 작동하고, 그 명령을 실행 한 다음, 나노 작동, 컨테이너 재시작 없음
Ben Winding

36

추가 할 수 있습니다

ENV TERM xterm

에디터를 정기적으로 사용한다면 Dockerfile에. vi / emacs로 지속적으로 디버깅하기 때문에 기본 컨테이너에 해당 설정이 있습니다.


어떻게 든 잘 작동하는 동안 이것은 나를 위해 작동하지 않습니다 docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash". 성명서 ENV TERM xterm앞에 방금 추가 EXPOSE했습니다. 맞습니까?
Lukas Oppermann

신경 쓰지 마라. 기본적으로 명령 ENV TERM xterm앞에 를 추가 해야했습니다 RUN.
Lukas Oppermann


10

등은 $TERM이미로 설정 xterm하지만 여전히 나를 위해 작동하지 않는, 여기에 일을하는 방법입니다 :docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"


5

내 .bashrc에서 해결 방법을 수행했습니다.

alias nano='export TERM=xterm && nano'

이 경우 오류가 더 이상 나타나지 않습니다



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.