Запуск nano в контейнере докера

Я открываю интерактивную оболочку в контейнер докеров таким образом

sudo docker exec -t -i {container_name} bash

Пока что так хорошо, но попытка запустить nano приводит к:

Ошибка открытия терминала: неизвестно.

Ответ 1

Я думаю, что это может быть связано с Docker Issue # 9299.

В этой проблеме есть некоторые обходные пути:

  • Запустите контейнер, назначающий псевдо-TTY (опция -t).
  • Экспортировать переменную среды экспорта $TERM = xterm в процессе обработки контейнера в exec (т.е.: export TERM=xterm)

Ответ 2

Команда запуска: export TERM=xterm

Ответ 3

Вы можете добавить

ENV TERM xterm

в файл Docker, если вы будете регулярно пользоваться редактором. У нас есть эта настройка в нашем базовом контейнере, поскольку мы постоянно отлаживаем вещи с помощью vi/emacs.

Ответ 4

как $TERM уже был установлен на xterm, но все еще не работает для меня, вот как это работает: docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"

Ответ 5

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

Ответ 6

Я сделал обходной путь, в моем .bashrc я добавил:

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

В этом случае ошибка больше не отображается