docker emacs
1.0.0
Docker-X11-桥 +网络浏览器
emacs25 emacs-snapshot emacs26latest Dockerfiles/Emacs26emacs25 dockerfiles/emacs25testing Dockerfiles/快照alpine Dockerfiles/Alpine -Emacs建立在Alpine Linux上(大约300MB未压缩),但可能是故障如果您需要其他emacs版本/配置检查Silex/docker-emacs
首先为您的操作系统拿出Docker。然后,您可以将其中一个图像用作dockerfile的基础。简单的示例,太空人分布。它将允许您安装和备份其他软件/软件包依赖项。使用Dockerfile添加说明,您可以使用URL从档案和远程存储库中提取.emacs.d 。另外,您可以简单地运行其中一个图像:
获取XQuartz
open -a XQuartz
在Xquartz的偏好中,转到“安全”选项卡,并确保您有“允许网络客户端的连接”。
ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $ip
docker run -ti --name emacs
-e DISPLAY=$ip:0
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
来源
其他方法
使用xinit , xorg-server和可选的winpty获取Cygwin(以-t运行Emacs容器)
export DISPLAY=<your-machine-ip>:0.0
startxwin -- -listen tcp &
xhost + <your-machine-ip>
docker run --name emacs
-e DISPLAY="$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
或与-ti通过winpty
winpty docker run -ti --name emacs
-e DISPLAY="$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
来源您可以使用@ninrod的设置
UID和最好的UNAME应该匹配主机的用户ID。还要确保设置$DISPLAY变量
docker run -ti --name emacs -v /tmp/.X11-unix:/tmp/.X11-unix:ro
-e DISPLAY="unix$DISPLAY"
-e UNAME="emacser"
-e GNAME="emacsers"
-e UID="1000"
-e GID="1000"
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d
-v <path_to_your_workspace>:/mnt/workspace
jare/emacs emacs
就是这样!现在,您应该看到Emacs窗口。
您可能需要允许用户UNAME的本地连接匹配主机用户ID。
xhost +si:localuser:<UNAME>
或允许从容器的主机名中的本地连接(这应适用于任何UID )
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`
来源
docker rm -f emacs卸下emacs容器docker restart emacs重新启动emacs容器docker rmi -f jare/emacs删除jare/emacs图像docker pull jare/emacs获取更新的jare/emacs版本docker images -a列出所有图像docker ps -a列出所有容器docker run ... jare/emacs运行默认命令docker run -ti ... jare/emacs /bin/bash开始bashdocker exec emacs /usr/bin/emacs在运行的emacs容器中开始/usr/bin/emacsdocker logs emacs打印emacs容器的日志docker run ... -p 8080:8080 ... jare/emacs访问Localhost的容器服务器:8080docker cp <from_my_local_machine_path> emacs:/<to_my_emacs_container_path>docker cp emacs:/<from_my_emacs_container_path> <to_my_local_machine_path>docker volume create --name my-workspace docker run ... -v my-workspace:/mnt/workspace ... jare/emacs docker run ... -v my-workspace:/home/developer/workspace ... jare/vim-bundle