docker技术入门与实战(六):用docker部署云桌面
启动一个带桌面环境和 VNC 的 Linux 容器宿主机端口6080可以通过浏览器访问容器桌面宿主机的 Downloads/Documents/Pictures 等目录同步到容器容器共享内存设置为 4GB,保证 GUI 稳定容器后台运行,并在重启后自动启动。
·
一 拉镜像
docker pull swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
[root@rocky9-3 ~]# docker pull swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
v1.0: Pulling from iivey/linux-desk
5c939e3a4d10: Pull complete
c63719cdbe7a: Pull complete
19a861ea6baf: Pull complete
651c9d2d6c4f: Pull complete
a028d17d35bd: Pull complete
45cf37e3e57b: Pull complete
321aed0b68db: Pull complete
d46680579ebc: Pull complete
Digest: sha256:9e4c4bfe7fb269cc0a0cca0ff9479c2a329a0e83c9cd8495266d28be96bf94d7
Status: Downloaded newer image for swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
二 启动服务
root@rocky9-3 ~]# docker run -itd --shm-size 4G -p 6080:6080 -e VNC_PASSWD=admin123456 -e GEOMETRY='1366x768' -e DEPTH=32 -v /data3/Downloads:/root/Downloads -v /data3/Documents:/root/Documents -v /data3/Pictures:/root/Pictures -v /data3/Videos:/root/Videos -v /data3/Music:/root/Music -v /data3/Desktop:/root/Desktop --restart unless-stopped --name linuxdesk swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
646cbe111dc93917cca659f7ef4c3e14671b1c35ae9854c50dc8527e93d27c8
命令原文:
docker run -itd --shm-size 4G \
-p 6080:6080 \
-e VNC_PASSWD=admin123456 \
-e GEOMETRY='1366x768' \
-e DEPTH=32 \
-v /data3/Downloads:/root/Downloads \
-v /data3/Documents:/root/Documents \
-v /data3/Pictures:/root/Pictures \
-v /data3/Videos:/root/Videos \
-v /data3/Music:/root/Music \
-v /data3/Desktop:/root/Desktop \
--restart unless-stopped \
--name linuxdesk \
swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0
1️⃣ 基本选项
| 参数 | 作用 |
|---|---|
docker run |
启动新容器 |
-itd |
三合一:-i 保持标准输入开启,-t 分配伪终端,-d 后台运行 |
--shm-size 4G |
容器共享内存大小设置为 4GB(很多 GUI 应用或浏览器需要更大 shm) |
-p 6080:6080 |
宿主机 6080 端口映射到容器 6080 端口(一般是 web VNC 端口) |
2️⃣ 环境变量
| 参数 | 作用 |
|---|---|
-e VNC_PASSWD=admin123456 |
VNC 登录密码设置 |
-e GEOMETRY='1366x768' |
桌面分辨率 |
-e DEPTH=32 |
颜色深度,32位色彩 |
这些环境变量都是用于容器内 Linux 桌面环境和 VNC 服务器配置。
3️⃣ 卷挂载(volume)
| 宿主机路径 | 容器路径 | 作用 |
|---|---|---|
/data3/Downloads |
/root/Downloads |
下载文件同步 |
/data3/Documents |
/root/Documents |
文档同步 |
/data3/Pictures |
/root/Pictures |
图片同步 |
/data3/Videos |
/root/Videos |
视频同步 |
/data3/Music |
/root/Music |
音乐同步 |
/data3/Desktop |
/root/Desktop |
桌面文件同步 |
这样在容器里修改或生成的文件可以直接映射回宿主机。
4️⃣ 其他选项
| 参数 | 作用 |
|---|---|
--restart unless-stopped |
容器会在 Docker 重启或宿主机重启时自动启动,除非被手动停止 |
--name linuxdesk |
给容器命名为 linuxdesk |
swr.cn-north-1.myhuaweicloud.com/iivey/linux-desk:v1.0 |
指定使用的镜像和版本 |
5️⃣ 总结
这条命令最终效果是:
- 启动一个带桌面环境和 VNC 的 Linux 容器
- 宿主机端口
6080可以通过浏览器访问容器桌面 - 宿主机的 Downloads/Documents/Pictures 等目录同步到容器
- 容器共享内存设置为 4GB,保证 GUI 稳定
- 容器后台运行,并在重启后自动启动
三 结构图
`
+---------------------------+
| 宿主机 Host |
|---------------------------|
| /data3/Downloads --------+-------> /root/Downloads (容器)
| /data3/Documents --------+-------> /root/Documents (容器)
| /data3/Pictures --------+-------> /root/Pictures (容器)
| /data3/Videos --------+-------> /root/Videos (容器)
| /data3/Music --------+-------> /root/Music (容器)
| /data3/Desktop --------+-------> /root/Desktop (容器)
| |
| |
| 浏览器访问:6080 ---------+-------> VNC Server (容器桌面)
+---------------------------+
|
|
+---------------------------+
| 容器 linuxdesk |
|---------------------------|
| Linux GUI / Desktop |
| VNC Server listening |
| Shared Memory: 4GB |
| Mounted Volumes |
+---------------------------+
实现的效果如下图所示
四 docker环境
[root@rocky9-3 ~]# docker info
Client: Docker Engine - Community
Version: 28.4.0
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.28.0
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.39.4
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 6
Server Version: 28.4.0
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 05044ec0a9a75232cad458027ca83437aae3f4da
runc version: v1.2.5-0-g59923ef
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 5.14.0-503.38.1.el9_5.x86_64
Operating System: Rocky Linux 9.5 (Blue Onyx)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.574GiB
Name: rocky9-3
ID: 8aa94ee0-74ae-4aff-9eaf-5fdaae353e00
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
::1/128
127.0.0.0/8
Registry Mirrors:
https://ghcr.geekery.cn/
https://hub.geekery.cn/
https://docker.m.daocloud.io/
https://docker.rainbond.cc/
https://docker.1panel.live/
Live Restore Enabled: false
[root@rocky9-3 ~]#
操作系统版本
[root@rocky9-3 ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.5 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.5"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.5 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.5"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.5"
[root@rocky9-3 ~]#
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)