Docker:在 docker 容器中运行 nano

Docker: Running nano in docker container

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

sudo docker exec -t -i {container_name} bash

到目前为止一切顺利,但尝试运行 nano 结果:

Error opening terminal: unknown.

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

该问题中评论了一些解决方法:

  • 运行 分配伪 TTY 的容器(选项 -t)。
  • 在容器进程中导出环境变量$TERM=xterm 运行 in exec (即: 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 以便将其安装到容器中。