一 拉镜像

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️⃣ 总结

这条命令最终效果是:

  1. 启动一个带桌面环境和 VNC 的 Linux 容器
  2. 宿主机端口 6080 可以通过浏览器访问容器桌面
  3. 宿主机的 Downloads/Documents/Pictures 等目录同步到容器
  4. 容器共享内存设置为 4GB,保证 GUI 稳定
  5. 容器后台运行,并在重启后自动启动

三 结构图

`

         +---------------------------+
         |        宿主机 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 ~]# 
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐