• 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
    
  • 相关阅读:
    IE11 Promise对象未定义错误--解决方法
    HTML中 li 标签的value属性兼容问题
    Oracle--树形自关联表查询SQL
    SVNTortoise--Branche和Merge操作
    console--API
    前端自动分环境打包(vue和ant design)
    typeScript入门(四)泛型
    typeScript入门(三)接口
    typeScript入门(二)函数与类
    typeScript入门(一)构建环境和数据类型
  • 原文地址:https://www.cnblogs.com/jiftle/p/13584725.html
Copyright © 2020-2023  润新知