【多系统解决方案】赶紧丢掉虚拟机吧,Docker + VNC 让你更加轻松拥有多系统

简介: 【多系统解决方案】赶紧丢掉虚拟机吧,Docker + VNC 让你更加轻松拥有多系统
  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

一般我们在开发过程中,都会遇到系统切换的问题,比如平时办公回复邮件或聊天使用Windows或Mac,但实际开发程序时,还是使用Ubuntu比较方便。而且,由于Ubuntu版本众多,有时候各个项目使用的系统版本不一致,例如有的用 Ubuntu18,有的用Ubuntu20。系统的不一致导致开发代码在迁移的时候会出现不少问题。

针对以上问题,有人会选择在电脑主系统上装一个虚拟机,在虚拟机上运行其它系统,例如Windows系统中虚拟机上跑Ubuntu。但是虚拟机比较重,而且也需要你去安装系统等操作,稍微有那么一点麻烦。还会导致系统卡顿。

今天介绍另一种多系统方案:Docker + VNC的方式,主机上起一个Docker,通过浏览器打开VNC链接Docker,非常方便。

效果如下:

安装步骤

我的主机环境是Ubuntu18.04

1. 安装 Docker

顺序执行以下命令:

sudo apt update #更新软件源列表
sudo apt install apt-transport-https ca-certificates curl software-properties-common #安装软件包的依赖
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #在系统中添加Docker的官方密钥
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" #添加Docker源,选择stable长期稳定版
sudo apt update #再次更新源列表
sudo apt install docker-ce #开始安装Docker
docker -v # 查看是否安装成功
sudo systemctl start docker # 启动docker服务
sudo systemctl enable docker # 设置开机自启动docker
sudo systemctl status docker # 查看Docker是否开启

下图状态说明启动成功:

2. 安装容器系统镜像

使用的镜像地址:https://github.com/fcwu/docker-ubuntu-vnc-desktop?tab=readme-ov-file#quick-start

(1)选择自己想安装的镜像(打开上面的链接,可以看到不同Ubuntu版本的tags):

例如我想在Docker里安装的Ubuntu20,所以我使用以下命令:

docker pull dorowu/ubuntu-desktop-lxde-vnc:latest

latest对应的版本是20.04。

就这一条命令就相当于原来虚拟机中的安装完系统了… 是不是很随意?

(2)然后启动该镜像:

sudo docker run -d -p 6080:80 -v /dev/shm1:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
  • -p参数表示要使用的端口号
  • -v参数重点了解下:这是让你的宿主机和容器之间共享文件用的。例如上面的命令,就表示宿主机中的/dev/shm1和容器中的/dev/shm共享内容。也就是说,你在宿主机上将文件拖放到 /dev/shm1中,在容器的/dev/shm文件夹下就能立刻看到该文件。
  • -d参数让docker可以在后台运行,否则你一直得开着运行这个docker的命令行窗口

(3)打开浏览器,输入地址:localhost:6080,然后就看到了文章开头的那个效果。

(4)然后就可以在里面进行操作了,相当于一个完整的Ubuntu20

3. Docker常用操作

既然用到Docker了,这里就记录几个Docker常用的命令:

sudo docker ps #查看运行的docker
sudo docker stop <docker id> #停止docker
sudo docker exec -it <docker id> /bin/bash #从宿主机命令行界面进入docker的控制台

4. 缺点

目前使用过程中体验不好的地方有:

  • 无法与宿主机之间进行文字的复制粘贴,例如在宿主机上复制一段文字,无法粘贴到容器中
  • 共享文件夹方面,只要是容器内创建的文件或文件夹,都会将宿主机的该文件或文件夹设置为root权限,只有sudo才能操作

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关文章
|
5天前
|
应用服务中间件 nginx 开发者
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
|
7天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
7天前
|
测试技术 Linux 数据库
【Docker项目实战】使用Docker部署Xnote轻量级笔记系统
【6月更文挑战第19天】使用Docker部署Xnote轻量级笔记系统
20 3
|
9天前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
13天前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
25 3
|
20天前
|
Linux 调度 虚拟化
Linux系统——初识Linux、虚拟机介绍、VMware WorkStation安装、在VMware上安装Linux
Linux系统——初识Linux、虚拟机介绍、VMware WorkStation安装、在VMware上安装Linux
64 4
|
7天前
|
网络协议 Linux Shell
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
|
1月前
|
测试技术 数据安全/隐私保护 Docker
Docker部署开源项目Django-CMS企业内容管理系统
【5月更文挑战第20天】Docker部署开源项目Django-CMS企业内容管理系统
39 1
|
27天前
|
数据安全/隐私保护
如何新建虚拟机并安装Windos系统
如何新建虚拟机并安装Windos系统
|
27天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
97 0