在docker容器中运行nano

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

sudo docker exec -t -i {container_name} bash 

到目前为止这么好,但试图运行nano结果:

打开terminal时出错:未知。

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

在这个问题上有一些解决方法:

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

运行命令: export TERM=xterm

你可以加

 ENV TERM xterm 

到你的Dockerfile,如果你经常使用编辑器的话。 我们在基本容器中设置了这个设置,因为我们经常用vi / emacs来debugging。

因为$TERM已经被设置为xterm但仍然没有为我工作,这是一种工作方式: docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"

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

我做了一个解决方法,在我的.bashrc我补充说:

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

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