Docker-X11-Bridge + um navegador da web 
emacs26 , emacs25 , emacs-snapshot ) para depuraçãolatest Dockerfiles/emacs26emacs25 DOCKERFILES/EMACS25testing dockerfiles/instantâneoalpine Dockerfiles/Alpine - Emacs Construa em Linux alpino pequeno (cerca de 300 MB não compactado), mas pode ser falhaSe você precisar de uma versão/Configuração do emacs diferente Silex/Docker-EMACS
Primeiro, receba o Docker para o seu sistema operacional. Em seguida, você pode usar uma das imagens como base (de) para o seu Dockerfile. Exemplo simples, distribuição de Spaceemacs. Ele permitirá que você instale e faça backup de dependências adicionais de software/pacote. Com o Dockerfile Adicione instruções, você pode extrair seu .emacs.d de arquivos e repositórios remotos como o GitHub usando URL. Além disso, você pode simplesmente executar uma das imagens:
Obtenha XQuartz
open -a XQuartz
Nas preferências do Xquartz, vá para a guia "Segurança" e verifique se você tem "Permitir conexões de clientes de rede" marcado
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
fonte
outro método
Obtenha Cygwin com xinit , xorg-server e Opcionaly winpty (para executar o contêiner Emacs com -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
Ou com -ti via 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
fonte que você pode usar a configuração do @ninrod
UID e, de preferência, UNAME deve corresponder ao ID do usuário do host. Verifique também se a variável $DISPLAY está definida
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
É isso! Agora você deve ver a janela Emacs.
Pode ser necessário permitir que a conexão local para o Usuário UNAME deve corresponder ao ID do usuário do hosts.
xhost +si:localuser:<UNAME>
Ou permitir a conexão local do nome do host do contêiner (isso deve funcionar com qualquer UID )
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`
fonte
docker rm -f emacs - Remova o contêiner emacsdocker restart emacs - reiniciar o contêiner emacsdocker rmi -f jare/emacs - Remova a imagem jare/emacsdocker pull jare/emacs - Obtenha versão mais recente jare/emacsdocker images -a - liste todas as imagensdocker ps -a - Liste todos os contêineresdocker run ... jare/emacs - Execute o comando padrãodocker run -ti ... jare/emacs /bin/bash - Start Bashdocker exec emacs /usr/bin/emacs - start /usr/bin/emacs no contêiner emacs em execuçãodocker logs emacs - Imprima toras de contêiner emacsdocker run ... -p 8080:8080 ... jare/emacs - Access Container's Server do 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