Docker: Menjalankan nano dalam wadah buruh pelabuhan


128

Saya membuka shell interaktif ke dalam wadah buruh pelabuhan seperti itu

sudo docker exec -t -i {container_name} bash

Sejauh ini bagus tetapi mencoba menjalankan nanohasil dalam:

Kesalahan membuka terminal: tidak diketahui.


Wadah apa ini? juga seperti apa variabel PATH Anda?
— Usman Ismail

Jawaban:


196

Saya pikir ini dapat dikaitkan dengan Docker Issue # 9299 .

Ada beberapa solusi yang dikomentari dalam masalah itu:

  • Jalankan wadah yang mengalokasikan pseudo-TTY (opsi -t).
  • Lingkungan Ekspor variabel $ TERM = xterm dalam proses wadah run di exec (yaitu: export TERM=xterm)

Masalah utama sebenarnya adalah yang ini
— Pierre de LESPINAY

2
Mengalokasikan pseudo-TTY tidak bekerja untuk saya, tetapi mengubah TERMtidak.
— Nathan Osman

Masalah ini membuat frustrasi tergantung pada lingkungan. Untuk Centos 8 menggunakan Docker untuk Windows pada Win 10, TERM=xterm-colorsepertinya hanya berfungsi untuk saya. jawaban serverfault .
— mdisibio

123

Jalankan perintah: export TERM=xterm


1
Hanya untuk mengklarifikasi. tanpa memulai kembali wadah buruh pelabuhan. apt-get install nano. lalu ekspor TERM = xterm. Kemudian nano file.txt. (Ini tidak akan ada jika Anda me-restart wadah buruh pelabuhan Anda.)
— Chad

Bekerja dengan baik, jalankan saja perintah itu dan kemudian nano berhasil, tidak ada wadah restart
— Ben Winding

36

Anda dapat menambahkan

ENV TERM xterm

ke Dockerfile Anda jika Anda akan menggunakan editor secara teratur. Kami memiliki pengaturan itu di wadah dasar kami, karena kami terus-menerus men-debug berbagai hal dengan vi / emacs.


Entah bagaimana ini tidak bekerja untuk saya sementara docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"berfungsi dengan baik. Saya baru saja menambahkan ENV TERM xtermsebelum EXPOSEpernyataan, apakah itu benar?
— Lukas Oppermann

Nevermind, "memecahkannya". Pada dasarnya saya perlu menambahkan ENV TERM xtermsebelum RUNperintah.
— Lukas Oppermann

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

10

seperti $TERMyang sudah diatur xtermtetapi masih tidak bekerja untuk saya, berikut adalah cara yang bekerja:docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"


5

Saya melakukan solusi, di .bashrc saya, saya telah menambahkan:

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

Dalam hal ini kesalahan tidak lagi muncul



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.