通用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
### 如何使用 Docker 运行 Ubuntu 镜像 为了运行 UbuntuDocker 容器,需先获取官方的 Ubuntu 镜像。这可以通过 `docker search` 和 `docker pull` 来完成。 #### 获取 Ubuntu 镜像 搜索可用的 Ubuntu 镜像列表可以利用命令: ```bash docker search ubuntu ``` 拉取特定版本(如16.04)的 Ubuntu 镜像到本地机器上则执行如下指令: ```bash docker pull ubuntu:16.04 ``` 一旦下载完毕,即可基于该镜像启动容器实例[^2]。 #### 启动并进入交互模式下的 Ubuntu 容器 创建一个新的容器,并以交互方式打开终端会话可采用下面这条命令: ```bash docker run -it ubuntu:16.04 /bin/bash ``` 此命令中的选项解释: - `-i`: 保持 STDIN 打开即使没有附加也继续运行。 - `-t`: 分配一个伪TTY (terminal),提供交互式的 shell 环境。 - `/bin/bash`: 指定要运行的命令,在这里是 Bash Shell。 当上述命令被执行后,将会看到类似于 root 用户登录提示符的信息,表示已经成功进入了新创建的 Ubuntu 容器环境中。 退出当前容器只需键入 `exit` 或者按 Ctrl+D 即可返回宿主机的操作界面。 #### 列出所有正在运行/停止状态的容器 查看现有的活动容器列表以及它们的状态信息,可以用这两个命令之一来实现: 显示处于运行中状态的容器: ```bash docker ps ``` 展示所有的容器(包括已停止): ```bash docker ps -a ``` 对于不再使用的容器,可通过其 ID 删除它,例如删除ID为 `1ae23480369f` 的容器,则输入以下命令[^3]: ```bash docker container rm 1ae23480369f ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值