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.