Docker: Docker kapsayıcısında nano çalıştırma


128

Bir docker container'a etkileşimli bir kabuk açıyorum.

sudo docker exec -t -i {container_name} bash

Şimdiye kadar her şey yolunda ancak nanosonuçları çalıştırmaya çalışmak :

Terminal açılırken hata oluştu: bilinmiyor.


Bu hangi konteyner? ayrıca PATH değişkeniniz neye benziyor?
Usman İsmail

Yanıtlar:


196

Bunun Docker Issue # 9299 ile ilgili olabileceğini düşünüyorum .

Bu konuda yorum yapılan bazı geçici çözümler var:

  • Bir sözde TTY (seçenek -t) tahsis eden kabı çalıştırın .
  • Dışa aktarım ortam değişkeni $ TERM = xterm konteynerin işleminde çalıştırılır (örn: export TERM=xterm )

Ana konu aslında gibi görünüyor bu bir
Pierre de LESPINAY

2
Bir sözde TTY tahsis etmek benim için işe yaramadı ama değiştirmek işe TERMyaradı.
Nathan Osman

Bu sorun, ortama bağlı olarak can sıkıcıdır. Win 10'da Windows için Docker kullanan Centos 8 için sadece TERM=xterm-colorbenim için çalışıyor gibi görünüyor. serverfault yanıtı .
mdisibio

123

Komutu çalıştır: export TERM=xterm


1
Sadece netleştirmek için. docker container'ı yeniden başlatmadan. apt-get install nano. sonra TERM = xterm dışa aktarın. Sonra nano file.txt. (Docker konteynerinizi yeniden başlatırsanız bu ortalıkta olmayacak.)
Chad

İyi çalıştı, sadece bu komutu çalıştırdım ve sonra nano çalıştı, konteyner yeniden başlatılmadı
Ben Winding

36

Ekleyebilirsin

ENV TERM xterm

Düzenleyiciyi düzenli olarak kullanacaksanız Dockerfile dosyanıza. Vi / emacs ile sürekli olarak bir şeylerin hatalarını ayıkladığımız için, temel kapsayıcımızda bu ayar var.


Her nasılsa bu iyi çalışırken benim için çalışmıyor docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash". İfadeden ENV TERM xtermönce ekledim EXPOSE, bu doğru mu?
Lukas Oppermann

Boşver, "çözdü". Temel olarak komuttan ENV TERM xtermönce eklemem gerekiyordu RUN.
Lukas Oppermann

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

10

olarak $TERMzaten ayarlandı xtermama hala benim için çalışmıyor, burada çalışan bir yoludur:docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"


5

Bir çözüm yaptım, .bashrc dosyama ekledim:

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

Bu durumda hata artık görünmez



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.