Docker運行圖形界面程序


原理簡介

主機配置

  • 主機系統中安裝x11服務
sudo apt-get install x11-xserver-utils
  • 啟動容器前執行xhost +

容器配置

  • 容器運行時加入參數,uid和gid兩個參數不需要
-v /tmp/.X11-unix:/tmp/.X11-unix `# gui程序需要`\
-e DISPLAY=$DISPLAY \
  • 完整指令
docker run -itd \
-v ~:/home/john `# 默認工作目錄,映射` \
-v /usrlocal/git:/home/john/git `# git倉庫目錄` \
-p 8001:8001 `# 日志倉庫,預覽服務` \
-p 8080:8080 `# web程序調試端口` \
-w /home/john `# 默認工作目錄` \
-v /etc/localtime:/etc/localtime:ro `# 當地時間` \
-v /tmp/.X11-unix:/tmp/.X11-unix `# gui程序需要`\
-e DISPLAY=$DISPLAY \
--name devenv-vim `# 容器名字` \
jiftle/devenv-vim:V1.0.0.B.6_191208 \
bash

測試

  • 安裝GUI小工具sudo apt-get install xarclock
  • 運行工具xarclock
  • 配置成功,會顯示個桌面時鍾

高階,在Docker中運行Emacs

  • 經過測試,網上的方法,會引起deepin桌面系統的崩潰,不建議用這種方式
  • x11docker 驗證了debian下有bug,導致x11 server崩潰
  • 調整方向,使用別人做好的spacemacs Docker
  • 網上的Docker解決了dbus的問題,但是中文輸入法不支持的問題,仍然存在
  • 可能是這句-v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
docker run -ti --rm -v $('pwd'):/mnt/workspace \
 -v /etc/localtime:/etc/localtime:ro \
 -v ~/.ssh/id_rsa:${HOME}/.ssh/id_rsa:ro \
 -v ~/.gnupg:${HOME}/.gnupg \
 -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \  
 -v /tmp/.X11-unix:/tmp/.X11-unix \
 -v /etc/machine-id:/etc/machine-id:ro \
 -e DISPLAY=$DISPLAY \
 -e TZ=UA \
 --name spacemacs jare/spacemacs


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM