讲师中心 微信公众号
AI工具推荐 视频效率加速

Docker与虚拟机_在UOS上搭建开发与测试环境

阿强姑娘_1419

阿强姑娘_1419

发布时间:2026-02-12 19:27:27

|

681人浏览过

|

来源于php中文网

原创

Docker在UOS上实现轻量级开发环境,QEMU-KVM支持全虚拟化测试,Docker Compose编排多服务,KVM快照保障测试回滚;四者分别适用于快速启动、硬件级隔离、服务协同与状态恢复场景。

docker与虚拟机_在uos上搭建开发与测试环境

在UOS操作系统上构建开发与测试环境时,Docker容器与传统虚拟机是两种主流技术路径。二者在资源占用、启动速度、隔离级别和部署方式上存在显著差异。以下是针对UOS平台的具体实现方式:

一、使用Docker在UOS上部署轻量级开发环境

Docker通过Linux内核的命名空间(namespaces)与控制组(cgroups)实现进程级隔离,无需模拟完整硬件,因此启动快、开销低,适合快速拉起多个一致的开发或测试实例。

1、确认UOS系统已启用cgroup v2并安装Docker CE版本。执行sudo apt update && sudo apt install docker.io完成基础安装。

2、将当前用户加入docker组以避免每次调用docker命令时输入sudo:sudo usermod -aG docker $USER,随后注销并重新登录使组权限生效。

3、拉取适配UOS(基于Debian/Ubuntu)的官方镜像,例如docker pull ubuntu:22.04或docker pull registry.cn-hangzhou.aliyuncs.com/uos-public/uos-server:20。

4、运行交互式容器并挂载本地代码目录:docker run -it -v /home/$USER/project:/workspace -p 8080:8080 ubuntu:22.04。

5、在容器内安装所需工具链(如gcc、python3、git),并通过apt update && apt install -y完成配置。

二、在UOS上使用QEMU-KVM创建全虚拟化测试环境

QEMU-KVM提供硬件级虚拟化支持,在UOS中可借助virt-manager图形界面或virsh命令行管理KVM虚拟机,适用于需完整操作系统行为、内核模块测试或跨架构验证的场景。

1、检查CPU是否支持虚拟化扩展:egrep -c '(vmx|svm)' /proc/cpuinfo,输出大于0表示可用。

2、安装KVM相关组件:sudo apt install qemu-kvm libvirt-daemon-system virtinst virt-manager。

3、启动libvirtd服务并设为开机自启:sudo systemctl enable --now libvirtd。

4、下载UOS桌面版或服务器版ISO镜像,使用virt-manager新建虚拟机,分配至少2核CPU、4GB内存及20GB磁盘空间。

5、在虚拟机安装过程中选择“安装第三方驱动”选项,确保virtio驱动被加载,以提升磁盘与网络I/O性能。

Docker Encyclopedia
Docker Encyclopedia

Docker 文档优先工作流:针对 Docker 特定问题、故障排除、命令规划、镜像/构建、容器/运行时操作及 Compose 等

下载

三、基于Docker Compose编排多服务开发环境

当开发涉及多个耦合组件(如前端、后端、数据库、缓存)时,Docker Compose可统一声明服务依赖关系与网络配置,避免手动启动顺序错误与端口冲突。

1、安装docker-compose:sudo apt install docker-compose(或从GitHub releases下载二进制文件并赋予可执行权限)。

2、在项目根目录创建docker-compose.yml文件,定义services字段,例如包含nginx、php-fpm、mysql三个服务。

3、在mysql服务中设置environment区块,明确指定MYSQL_ROOT_PASSWORD与MYSQL_DATABASE,确保初始化数据库结构。

4、使用docker-compose up -d后台启动全部服务,并通过docker-compose logs -f实时查看各容器日志。

5、验证服务连通性:进入php-fpm容器执行mysql -h mysql -u root -p$MYSQL_ROOT_PASSWORD -e "SHOW DATABASES;",确认能访问mysql服务。

四、利用KVM虚拟机快照进行测试状态回滚

KVM支持内存与磁盘联合快照,可在UOS宿主机上对正在运行的虚拟机创建一致性检查点,用于回归测试、故障复现或配置变更前保护现场。

1、确保虚拟机磁盘格式为qcow2(非raw),可通过qemu-img info /var/lib/libvirt/images/vm1.qcow2确认。

2、使用virsh命令创建快照:virsh snapshot-create-as vm1 base-snapshot "初始干净环境"。

3、在虚拟机中执行测试操作(如安装软件、修改配置、触发异常),完成后再次创建快照:virsh snapshot-create-as vm1 test-after "执行冒烟测试后"。

4、若需回退至初始状态,执行:virsh snapshot-revert vm1 base-snapshot,虚拟机将立即恢复至快照时刻的内存与磁盘状态。

5、列出所有快照:virsh snapshot-list vm1,删除不再需要的快照以释放存储空间:virsh snapshot-delete vm1 snapshot-name。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2393

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1439

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

855

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3352

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

5748

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1239

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6011

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

5222

2023.08.14

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

20

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn