在docker容器中运行nano

Myl*_*ell 123 docker

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

sudo docker exec -t -i {container_name} bash
Run Code Online (Sandbox Code Playgroud)

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

打开终端时出错:未知.

Jav*_*oso 192

我认为这可能与Docker问题#9299有关.

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

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

  • 分配伪TTY对我来说不起作用,但改变了`TERM`. (2认同)

Nar*_*lia 123

运行命令: export TERM=xterm


sea*_*mcl 35

你可以加

ENV TERM xterm
Run Code Online (Sandbox Code Playgroud)

如果您将定期使用编辑器,请访问您的Dockerfile.我们在基本容器中有这个设置,因为我们经常用vi/emacs调试东西.


小智 15

docker exec -it id_container bash
apt-get update
apt-get install nano
export TERM=xterm
Run Code Online (Sandbox Code Playgroud)


pHi*_*HiL 9

$TERM已设定为xterm,但仍然没有工作对我来说,这里是一个方式工作:docker exec -it [CONTAINER_ID] /bin/bash -c "export TERM=xterm; exec bash"


Raw*_*eed 9

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

  • 在没有 apt-get 或 yum 的容器中工作。谢谢 (2认同)

wor*_*mer 5

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

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

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