zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Prototype源码浅析——String部分(四)之补充
    改造alert的引发的争论【基本类型与引用类型】
    Eclipse rcp 窗口激活
    Eclipse statusLine 加入进度信息
    线的匹配
    python 文本搜索
    Eclipse rcp 编辑器行号显示
    CDT重建索引
    Eclipse rcp 数据存储
    CTabFolder 最大最小化
  • 原文地址:https://www.cnblogs.com/jiftle/p/13584725.html
Copyright © 2011-2022 走看看