在docker容器中运行nano

时间:2015-01-07 18:33:26

标签: docker

我将一个交互式shell打开到一个像这样的docker容器中

sudo docker exec -t -i {container_name} bash

到目前为止一直很好,但试图运行nano会导致:

  

打开终端时出错:未知。

8 个答案:

答案 0 :(得分:191)

我认为这可能与Docker Issue #9299有关。

在该问题中有一些解决方法:

  • 运行容器分配伪TTY(选项-t)。
  • 导出环境变量$ TERM = xterm在容器的exec运行过程中(即:export TERM=xterm

答案 1 :(得分:123)

运行命令:export TERM=xterm

答案 2 :(得分:35)

您可以添加

ENV TERM xterm
如果您将定期使用编辑器,请

到您的Dockerfile。我们在基本容器中设置了这个设置,因为我们经常使用vi / emacs进行调试。

答案 3 :(得分:11)

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

答案 4 :(得分:9)

由于$TERM已经设置为xterm,但仍然不适合我,这是一种有效的方式:docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"

答案 5 :(得分:4)

我做了一个解决方法,在我的.bashrc中添加了:

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

在这种情况下,错误不再出现

答案 6 :(得分:1)

在容器apk add nano中运行此命令

答案 7 :(得分:0)

对我来说export TERM=xterm会导致此处描述一些显示问题: https://superuser.com/questions/1172222/issues-editing-files-with-nano-in-bash-windows-10

在这种情况下,export TERM=linux可能会更好。