通用docker运行ubuntu图形化桌面完整步骤

 更新时间:2026年04月08日 10:10:19   作者:superbadguy  
Docker本身的工作模式是命令行的,其主要使用场景是运行无界面的后台服务或者运行Web服务,这篇文章主要介绍了通用docker运行ubuntu图形化桌面的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

为什么选择 Docker 运行 Ubuntu 图形化桌面

在需要同时使用 Windows 和 Linux 的场景下,传统方案各有不足:

  • 双系统:需要频繁重启切换,效率低下;
  • 虚拟机(VMware/VirtualBox):无法直接调用宿主机显卡(尤其是 NVIDIA 显卡),性能受限;
  • 常规 Docker 容器:虽然支持 GPU 直通,但默认缺乏图形界面。

而 Docker 化 Ubuntu 桌面环境 完美解决了这些痛点:

  • 无缝切换:无需重启,随用随启
  • 完整 GPU 支持:直接调用宿主机 NVIDIA 显卡(通过 --gpus all 参数)
  • 轻量高效:资源占用远低于虚拟机

虽然可以通过手动编写 Dockerfile 构建镜像,但过程繁琐(需要配置 VNC、桌面环境等)。更推荐使用现成方案如 KasmWeb,它提供开箱即用的 Ubuntu 桌面镜像,支持:一键部署和网页直接访问,这种方案既保留了容器的轻量化优势,又提供了完整的图形化体验,是开发、测试的理想选择。

18.04、20.04和24.04 image

# 下载18.04
docker pull kasmweb/ubuntu-bionic-desktop:1.10.0-rolling 
# 下载20.04
docker pull kasmweb/ubuntu-focal-desktop:1.16.0
# 下载24.04
docker pull kasmweb/ubuntu-noble-desktop:1.16.0

运行

docker run -d \
     --name ubuntu24.04 \
     --shm-size=5120m \
     --gpus all \
     -p 6901:6901 \
     -e VNC_PW=123qwe \
     --restart always \
     kasmweb/ubuntu-noble-desktop:1.16.1-rolling-daily

浏览器访问

  1. 18.04访问:http://localhost:6901
  2. 24.04访问:https://localhost:6901
  3. 用户名: kasm-user,密码为docker run时指定的密码

修改密码

  1. root用户进入容器: docker exec -it -u root <容器名> /bin/bash
  2. 修改root用户密码:passwd
  3. 修改kasm-user用户密码:passwd kasm-user
  4. 赋予kasm-user sudo权限:vim /etc/sudoers
    root    ALL=(ALL:ALL) ALL
    # 增加下面一行
    kasm-user ALL=(ALL) NOPASSWD: ALL

安装ping

  sudo apt install iputils-ping

查看版本

  lsb_release -a
  cat /etc/os-release

常见问题与解决方案

  • X11 报错 No protocol specified / Cannot open display

    • 原因:通常是宿主机 X Server 权限或 DISPLAY 变量问题。

    • 解决

      • 在宿主机执行 xhost +local:docker 授权-。

      • 检查 DISPLAY 变量是否正确传递(echo $DISPLAY)。

      • 确保 X11 套接字路径正确并已挂载。

  • VNC 连接后画面卡顿或黑屏

    • 原因:网络延迟高,或容器内桌面环境启动失败。

    • 解决

      • 尝试降低 -geometry 分辨率。

      • 进入容器内部,使用 ps aux 查看 VNC 服务及桌面进程是否正常运行。

  • 容器内音频无法输出

    • 原因:Docker 默认不处理音频设备。

    • 解决

      • 运行容器时添加 --device /dev/snd 挂载音频设备。

      • 或通过 PulseAudio 服务器进行转发,这需要更复杂的配置。

  • 图形应用渲染或硬件加速支持不佳

    • 原因:容器内缺少显卡驱动和 OpenGL 库。

    • 解决

      • 在容器内安装 mesa-utils 等 OpenGL 库。

      • 使用 --gpus all 参数将宿主机的 GPU 透传给容器(需安装 NVIDIA Container Toolkit)。

总结 

到此这篇关于通用docker运行ubuntu图形化桌面的文章就介绍到这了,更多相关docker运行ubuntu图形化桌面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 容器全部停止的几种方法实现

    Docker 容器全部停止的几种方法实现

    我们需要停止所有的容器时,可以使用一些命令来实现,本文主要介绍了Docker 容器全部停止的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 在CentOS启动时自动加载内核模块overlayfs操作

    在CentOS启动时自动加载内核模块overlayfs操作

    这篇文章主要介绍了在CentOS启动时自动加载内核模块overlayfs操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Dockerfile打包部署详细图文教程

    Dockerfile打包部署详细图文教程

    这篇文章主要介绍了Dockerfile打包部署的相关资料,并详细解释了从创建Dockerfile到启动容器的每一步过程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Dockerfile 指令 ADD 和 COPY介绍

    Dockerfile 指令 ADD 和 COPY介绍

    ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中,COPY指令和ADD指令功能和使用方式类似。只是COPY指令不会做自动解压工作。本文给大家介绍的非常详细,需要的朋友参考下
    2017-03-03
  • docker部署nginx服务的实现步骤

    docker部署nginx服务的实现步骤

    本文主要介绍了docker部署nginx服务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 在Docker容器中挂载主机目录的方法

    在Docker容器中挂载主机目录的方法

    在使用Docker时,有时需要将主机上的目录挂载到容器中,以便在主机和容器之间共享数据,使主机上的更新能实时反映到容器中,但不同的操作系统和Docker版本在挂载目录时可能会有不同的方法和注意事项,本文给大家讲解了在Docker容器中挂载主机目录的方法
    2025-06-06
  • 宿主机无法访问docker容器中nginx服务的问题解决

    宿主机无法访问docker容器中nginx服务的问题解决

    在虚拟机中部署Docker并安装Nginx后,宿主机无法访问容器内的Nginx服务,通过检查端口映射、防火墙状态、进入容器内部启动Nginx以及检查/修改内核的IP转发设置,解决了该问题,感兴趣的可以了解一下
    2024-11-11
  • 使用docker的python基础镜像时要指定patch版本原理

    使用docker的python基础镜像时要指定patch版本原理

    这篇文章主要为大家介绍了使用docker的python基础镜像时要指定patch版本原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 如何对已有docker容器增加新的端口映射详解

    如何对已有docker容器增加新的端口映射详解

    最近使用Docker作为容器部署项目的时候,发现有个问题就是容器只能在启动的时候配置预先配置端口,但是往往实际应用的过程中会发现端口不够用,下面这篇文章主要给大家介绍了关于如何对已有docker容器增加新的端口映射的相关资料,需要的朋友可以参考下
    2022-08-08
  • docker环境变量配置不生效/ect/profile的解决方法

    docker环境变量配置不生效/ect/profile的解决方法

    docker在使用过程中,有时候自定义容器实例中的某些配置文件,本文主要介绍了docker环境变量配置不生效/ect/profile的解决方法,感兴趣的可以了解一下
    2023-08-08

最新评论