【多系统解决方案】赶紧丢掉虚拟机吧,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知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关文章
|
3月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
6月前
|
关系型数据库 MySQL 数据库连接
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
932 82
|
5月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
176 17
|
5月前
|
Ubuntu 安全 网络安全
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
338 21
|
5月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
581 12
|
6月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
363 30
|
6月前
|
Ubuntu Linux Docker
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
1872 0
|
8月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
339 12
|
9月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
304 3