Docker-X11-Bridge + un navegador web 
emacs26 , emacs25 , emacs-snapshot ) para la depuraciónlatest Dockerfiles/EMACS26emacs25 Dockerfiles/EMACS25testing DockerFiles/Snapshotalpine Dockerfiles/Alpine - Emacs se basa en Alpine Linux Small (alrededor de 300 MB sin comprimir) pero puede ser fallidoSi necesita una versión/configuración de EMACS diferente, consulte Silex/Docker-EMACS
Primero obtenga Docker para su sistema operativo. Luego puede usar una de las imágenes como base (desde) para su Dockerfile. Ejemplo simple, distribución de Spacemacs. Le permitirá instalar y hacer una copia de seguridad de dependencias adicionales de software/paquete. Con DockerFile Agregar instrucción, puede extraer su .emacs.d de archivos y repositorios remotos como GitHub usando URL. También puede simplemente ejecutar una de las imágenes:
Obtener XQuartz
open -a XQuartz
En las preferencias de Xquartz, vaya a la pestaña "Seguridad" y asegúrese de obtener "Permitir conexiones de clientes de red"
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
fuente
otro método
Obtenga cygwin con xinit , xorg-server y opcionaly winpty (para ejecutar el contenedor emacs con -t )
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
O con -ti a través de 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
fuente puede usar la configuración de @ninrod
UID y preferiblemente UNAME debería coincidir con la ID de usuario del host. También asegúrese de que se establezca la variable $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
¡Eso es todo! Ahora deberías ver la ventana Emacs.
Es posible que deba permitir la conexión local para el usuario UNAME debe coincidir con la ID de usuario de los hosts.
xhost +si:localuser:<UNAME>
O permita la conexión local desde el nombre de host del contenedor (esto debería funcionar con cualquier UID )
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`
fuente
docker rm -f emacs - Retire el contenedor emacsdocker restart emacs - reiniciar contenedor emacsdocker rmi -f jare/emacs - Retire la imagen jare/emacsdocker pull jare/emacs - Obtener la versión más nueva jare/emacsdocker images -a - Lista de todas las imágenesdocker ps -a - Lista de todos los contenedoresdocker run ... jare/emacs - Ejecute el comando predeterminadodocker run -ti ... jare/emacs /bin/bash - Inicio Bashdocker exec emacs /usr/bin/emacs - Start /usr/bin/emacs en el contenedor emacs en ejecucióndocker logs emacs - Imprimir registros de contenedores de emacsdocker run ... -p 8080:8080 ... jare/emacs - Access Container's Server desde 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