gpt4 book ai didi

emacs - 在 docker 容器中运行 emacs

转载 作者:IT老高 更新时间:2023-10-28 12:40:57 28 4
gpt4 key购买 nike

我使用的是 Mac,想在我的 docker 容器中运行 emacs。有没有首选的方法来解决这个问题?在我的流程中,我得到了 stuc,因为 DISPLAY/TERM 没有设置

> docker exec -it c6a7a76db84c bash
> sudo apt-get install emacs
...
> oot@c6a7a76db84c:/var/log/apache2# emacs
Please set the environment variable DISPLAY or TERM (see `tset').
> oot@c6a7a76db84c:/var/log/apache2# tset
tset: unknown terminal type unknown
Terminal type?

我应该为 tset 使用什么?或者是否有在 docker 容器中运行 emacs 的首选方式?

最佳答案

按照 Bryan 的建议,为了在容器内编辑文件,通常最好使用主机上的卷和编辑器。事实上,您永远不应该编辑不在卷中的文件,因为当容器被移除时,您所做的更改将会丢失。

但是,在容器内运行编辑器甚至 GUI 应用程序是非常可行和有用的。为了运行命令行版本的emacs,我所要做的就是:

$ docker run -it debian /bin/bash
root@02bd877c1052:/# apt-get update && apt-get install -y emacs23-nox
root@02bd877c1052:/# emacs

我已经使用在 Linux 上本地运行的 boot2docker 和 docker 对此进行了测试。我认为你的问题是因为 emacs 试图启动 X 版本的 emacs,默认情况下它不会工作,因为没有运行 XServer。

如果您想在容器中运行 GUI 应用程序,您有几个选择:

  • 使用 VNC 或类似方法
  • 使用 ssh -x 进行 X 转发(需要 XServer,例如 xquartz)
  • 在容器内安装 xsocket(同样需要一个 XServer,我不确定它如何与 xquartz 一起工作,暴露 xsocket 也存在一些安全问题)

请不要认为容器不应该用于交互式应用程序。这样做的原因有很多,包括安全性。 subuser project使用 Docker 运行交互式应用程序,并详细说明为什么这是一个好主意。

关于emacs - 在 docker 容器中运行 emacs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083182/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com