Я открываю интерактивную оболочку в контейнере докера вот так
sudo docker exec -t -i {container_name} bash
Пока все хорошо, но попытка запустить nano
приводит к:
Ошибка открытия терминала: неизвестно.
Я открываю интерактивную оболочку в контейнере докера вот так
sudo docker exec -t -i {container_name} bash
Пока все хорошо, но попытка запустить nano
приводит к:
Ошибка открытия терминала: неизвестно.
Ответы:
Я думаю, это может быть связано с проблемой Docker # 9299 .
В этой проблеме есть некоторые обходные пути:
-t
).export TERM=xterm
)TERM
.
TERM=xterm-color
похоже, работает только для меня. ответ serverfault .
Запустить команду: export TERM=xterm
Можете добавить
ENV TERM xterm
в ваш Dockerfile, если вы будете регулярно использовать редактор. У нас есть этот параметр в нашем базовом контейнере, поскольку мы постоянно отлаживаем вещи с помощью vi / emacs.
docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"
работает нормально. Я только что добавилENV TERM xterm
перед EXPOSE
утверждением, это правильно?
ENV TERM xterm
перед RUN
командой.
docker exec -it id_container bash
apt-get update
apt-get install nano
export TERM=xterm
Я сделал обходной путь, в моем .bashrc я добавил:
alias nano='export TERM=xterm && nano'
В этом случае ошибка больше не появляется
Для меня export TERM=xterm
вызывает некоторые проблемы с отображением, описанные здесь:
/superuser/1172222/issues-editing-files-with-nano-in-bash-windows-10
В этом случае export TERM=linux
может работать лучше.
Запустите эту команду в своем контейнере apk add nano