Docker: executando o nano no contêiner do docker


128

Abro um shell interativo em um contêiner de encaixe

sudo docker exec -t -i {container_name} bash

Até agora tudo bem, mas tentar executar nanoresultados em:

Erro ao abrir o terminal: desconhecido.


Qual container é esse? também como é a sua variável PATH?
precisa saber é o seguinte

Respostas:


196

Acho que isso pode estar relacionado ao Docker Issue # 9299 .

Existem algumas soluções alternativas comentadas nesse problema:

  • Execute o contêiner alocando um pseudo-TTY (opção -t).
  • Ambiente exportação variável $ TERMO = xterm em funcionamento o processo do recipiente em exec (ou seja: export TERM=xterm)

O principal problema, na verdade, parece ser este
Pierre de LESPINAY

2
Alocar um pseudo-TTY não funcionou para mim, mas a mudança TERMfuncionou.
Nathan Osman

Esse problema é frustrante, dependendo do ambiente. Para o Centos 8 usando o Docker para Windows no Windows 10, apenas TERM=xterm-colorparece funcionar para mim. resposta serverfault .
mdisibio 02/04

123

Execute o comando: export TERM=xterm


1
Só para esclarecer. sem reiniciar o contêiner do docker. apt-get install nano. exporte TERM = xterm. Então nano file.txt. (Isto não será em torno de se você reiniciar o recipiente janela de encaixe.)
Chad

Funcionou bem, apenas correu esse comando e, em seguida, nano trabalhou, não restart recipiente
Ben enrolamento

36

Você pode adicionar

ENV TERM xterm

para o seu Dockerfile se você usar o editor regularmente. Temos essa configuração em nosso contêiner base, pois estamos constantemente depurando coisas com o vi / emacs.


De alguma forma, isso não está funcionando para mim enquanto docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"funciona bem. Acabei de adicionar ENV TERM xtermantes da EXPOSEdeclaração, está correto?
Lukas Oppermann

Deixa pra lá, "resolveu". Basicamente, eu precisava adicionar o ENV TERM xtermantes do RUNcomando.
Lukas Oppermann 07/10

20
docker exec -it id_container bash
apt-get update
apt-get install nano
export TERM=xterm

10

como $TERMjá foi definido, xtermmas ainda não está funcionando para mim, aqui está uma maneira que funcionou:docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"


5

Eu fiz uma solução alternativa, no meu .bashrc eu adicionei:

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

Nesse caso, o erro não aparece mais



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.