Docker-X11-Bridge + веб-браузер 
emacs26 , emacs25 , emacs-snapshot ) для отладкиlatest Dockerfiles/Emacs26emacs25 Dockerfiles/Emacs25testing Dockerfiles/Snapshotalpine Dockerfiles/Alpine - EMACS Build на Alpine Linux Small (около 300 МБ несжатую), но может быть сбойЕсли вам нужна другая версия/конфигурация EMACS SILEX/Docker-EMACS
Сначала получите Docker для вашей ОС. Затем вы можете использовать одно из изображений в качестве базы (от) для вашего Dockerfile. Простой пример, распределение Spacemacs. Это позволит вам установить и резервное копирование дополнительных зависимостей программного обеспечения/пакета. С помощью DockerFile добавить инструкцию, вы можете извлечь свой .emacs.d из архивов и удаленных репозиториев, таких как GitHub, используя URL. Также вы можете просто запустить одно из изображений:
Получите 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
источник
Другой метод
Получить Cygwin с xinit , xorg-server и Optionaly winpty (для запуска emacs intaner с -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
Или с -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 должны соответствовать идентификатору пользователя хоста. Также убедитесь, что переменная $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 , чтобы соответствовать идентификатору пользователя Hosts.
xhost +si:localuser:<UNAME>
Или разрешить локальное соединение из имени хоста контейнера (это должно работать с любым UID )
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`
источник
docker rm -f emacs - Снимите контейнер emacsdocker restart emacs - перезапустить контейнер emacsdocker rmi -f jare/emacs - Удалите изображение jare/emacsdocker pull jare/emacs - Получите новую версию jare/emacsdocker images -a - Перечислите все изображенияdocker ps -a - Список всех контейнеровdocker run ... jare/emacs - запустите команду по умолчаниюdocker run -ti ... jare/emacs /bin/bash - start bashdocker exec emacs /usr/bin/emacs - Start /usr/bin/emacs в работающем контейнере emacsdocker logs emacs - распечатать журналы контейнера emacsdocker run ... -p 8080:8080 ... jare/emacs - Access Container's Server от 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