在码头容器中运行 nano

我将一个交互式 shell 打开到一个 Docker 容器中,如下所示

sudo docker exec -t -i {container_name} bash

到目前为止还不错,但试图运行 nano的结果是:

打开终端错误: 未知。

103542 次浏览

我认为这可能与 码头号9299有关。

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

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

你可以加

ENV TERM xterm

如果您将定期使用该编辑器,则将该文件添加到 Dockerfile。我们在基本容器中设置了这个参数,因为我们经常使用 vi/emacs 调试东西。

运行指令: export TERM=xterm

因为 $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'

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

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

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

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

我不知道我们是否在谈论同样的事情,但你需要使 apt update | apt install nano,这样你就可以安装在容器中。