Windows+Docker-desktop+Ubuntu-desktop+KasmVNC
在Windows使用Ubuntu不需要频繁切换系统,且windows和ubuntu环境中文件能够共享。所以之前使用VM是有点麻烦的,装双系统又得切换,使用WSL又不太方便,如果需要多个环境配置的ubuntu还得在WSL里面安装docker,还不如直接在windows直接使用docker。现在整理一下我使用windows下docker构建Ubuntu的环境过程。
一、安装docker-desktop

然后安装就行。
安装完成在cmd中输入以下命令查看是否安装成功:
docker --version
我的显示是:
Docker version 28.5.1, build e180ab8
二、拉取ubuntu镜像
我使用的是unity桌面的ubuntu镜像:跟平时装的双系统是差不多的。创建一个文件夹,在这个文件夹里创建一个文件,命名为 Dockerfile(没有任何后缀)。用记事本打开 Dockerfile,复制以下内容,保存文件:
#这里的colinchang/ubuntu-desktop是会自动拉取的镜像源,如果你不使用这个镜像源可以换其他的。
FROM colinchang/ubuntu-desktop
#这里的colinchang/ubuntu-desktop是会自动拉取的镜像源,如果你不使用这个镜像源可以换其他的。
FROM colinchang/ubuntu-desktop
# 设置时区为上海(避免安装过程中交互)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 安装中文语言包和字体
RUN apt-get update && \\
apt-get install -y \\
language-pack-zh-hans \\
fonts-wqy-zenhei \\
fonts-wqy-microhei \\
fonts-arphic-ukai \\
fonts-arphic-uming \\
ibus ibus-pinyin \\
&& locale-gen zh_CN.UTF-8 && \\
update-locale LANG=zh_CN.UTF-8 && \\
apt-get clean && \\
rm -rf /var/lib/apt/lists/*
# 设置中文环境变量
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8
# 设置VNC密码(可选,运行时也可以通过--env指定)
ENV VNC_PW=123456
# 暴露端口
EXPOSE 6901
三、创建运行脚本
在同一个文件夹里创建一个 run.bat 文件:新建文本文档,命名为 run.bat;复制以下内容:
@echo off
chcp 65001
echo 正在启动Ubuntu中文桌面容器...
docker run --name ubuntu-cn --hostname=ubuntu-desktop --user=root --env=VNC_PW=123456 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=DISPLAY=:1 --env=VNC_PORT=5901 --env=NO_VNC_PORT=6901 --env=AUDIO_PORT=4901 --env=VNC_RESOLUTION=1280x1024 --env=MAX_FRAME_RATE=24 --env="VNCOPTIONS=-PreferBandwidth -DynamicQualityMin=4 -DynamicQualityMax=7 -DLP_ClipDelay=0" --env=HOME=/home/kasm-user --env=TERM=xterm --env=STARTUPDIR=/dockerstartup --env=INST_SCRIPTS=/dockerstartup/install --env=KASM_VNC_PATH=/usr/share/kasmvnc --env=DEBIAN_FRONTEND=noninteractive --env=VNC_COL_DEPTH=24 --env=VNC_VIEW_ONLY_PW=vncviewonlypassword --env=LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu:/opt/libjpeg-turbo/lib64/:/usr/local/lib/:/usr/local/nvidia/lib:/usr/local/nvidia/lib64 --env=OMP_WAIT_POLICY=PASSIVE --env=GOMP_SPINCOUNT=0 --env=SHELL=/bin/bash --env=START_XFCE4=1 --env=START_PULSEAUDIO=1 --env=LANG=zh_CN.UTF-8 --env=LANGUAGE=zh_CN:zh --env=LC_ALL=zh_CN.UTF-8 --env=KASMVNC_AUTO_RECOVER=true --env=PULSE_RUNTIME_PATH=/var/run/pulse --env=DISTRO=ubuntu --env="SDL_GAMECONTROLLERCONFIG=030000005e040000be02000014010000,XInput Controller,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b8,guide:b16,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:b12,dpdown:b13,dpleft:b14,dpright:b15,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7" --env=NVIDIA_DRIVER_CAPABILITIES=graphics,compat32,utility --network=bridge --workdir=/home/kasm-user/Desktop/课题资料 -p 6901:6901 -v "D:/课题资料:/home/kasm-user/Desktop/课题资料" --restart=always -d ubuntu-desktop-cn
echo.
echo 容器已启动!
echo 请打开浏览器访问: http://localhost:6901
echo VNC密码: 123456
echo.
pause
特别注意的是,我的在windows共享的文件夹是"D:/课题资料",挂载在ubuntu的“/home/kasm-user/Desktop/课题资料”,这个命令复制好之后需要把这里根据你自己的实际情况改改:

在含有Dockerfile的文件夹中地址栏输入 cmd,打开命令提示符打开cmd,运行构建命令:
docker build -t ubuntu-desktop-cn .
这个过程需要5-10分钟(取决于网速)
等待看到 Successfully built 和 Successfully tagged ubuntu-desktop-cn:latest
停止并删除旧容器(如果有)
docker ps -a
如果看到有容器在运行,停止并删除它:
docker stop <容器ID或名称>
docker rm <容器ID或名称>
运行新容器:直接双击run.bat
打开浏览器访问:
https://localhost:6901
如果需要输入用户名和密码,一般是:
用户名:kasm-user
密码:123456
最后界面就是这样:

更多推荐
所有评论(0)