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