Running emacs in a docker container

后端 未结 3 1336
余生分开走
余生分开走 2021-02-05 05:23

I\'m using a Mac and want to run emacs in my docker container. Is there a preferred way to solve this? In my flow I get stuc because the DISPLAY/TERM aren\'t set



        
3条回答
  •  清酒与你
    2021-02-05 05:52

    In order to edit files inside a container, it's generally best to use volumes and the editor on the host, as Bryan suggests. In fact, you should never edit a file that's not in a volume as your changes will be lost when the container is removed.

    However, it's quite possible and useful to run editors and even GUI applications inside containers. In order to run the command line version of emacs, all I had to do was:

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

    I've tested this with boot2docker and docker running natively on Linux. I think your problem was because emacs was trying to launch the X version of emacs, which won't work by default as there isn't an XServer running.

    If you want to run a GUI application inside a container, you have a few choices:

    • Use VNC or similar
    • Use ssh -x to do X forwarding (requires an XServer such as xquartz)
    • Mount the xsocket inside the container (again requires an XServer and I'm not sure how it will work with xquartz, also there are some security issues with exposing the xsocket)

    Please don't believe that containers shouldn't be used for interactive applications. There are many reasons to do so, including security. The subuser project uses Docker to run interactive applications and goes into detail about why this can be a good idea.

提交回复
热议问题