在受限 Docker 容器(2核4GB)内通过 QEMU 运行完整 Ubuntu 22.04
270 字
1 分钟
在受限 Docker 容器(2核4GB)内通过 QEMU 运行完整 Ubuntu 22.04
在受限 Docker 容器内运行完整 Ubuntu 虚拟机
本文记录了在仅 2 核 4GB、无 KVM 支持的受限 Docker 容器中,成功运行完整 Ubuntu 22.04 系统的实战过程。
环境限制
- 无
/dev/kvm - 无法重新
docker run - 只能使用 QEMU 软件模拟(TCG)
准备阶段
cd /vm/images
# 下载镜像wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img -O ubuntu.qcow2
# 创建 cloud-init 配置cat > user-data << 'EOF'#cloud-configpassword: ubuntuchpasswd: { expire: False }ssh_pwauth: TrueEOF
cat > meta-data << 'EOF'instance-id: iid-local01local-hostname: ubuntu-vmEOF
apt update && apt install -y genisoimagegenisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data最终稳定启动命令(3.3GB 内存版)
qemu-system-x86_64 \ -cpu qemu64 \ -m 3379 -smp 2 \ -drive file=ubuntu.qcow2,format=qcow2,if=virtio,cache=writeback \ -cdrom seed.iso \ -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 \ -nographic -boot order=dc登录:用户名 ubuntu,密码 ubuntu
进程保护
tmux new -s qemu-vm# 运行 QEMU 命令后,按 Ctrl+B D 脱离性能优化建议
- 内存分配控制在容器总量的 80%~85%
- 使用
cache=writeback提升磁盘性能 - 优先使用 tmux 保护进程
常见问题
- QEMU 闪退 → 简化参数或检查
seed.iso是否存在 - 无法登录 → 必须挂载 cloud-init 的 seed.iso
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
在受限 Docker 容器(2核4GB)内通过 QEMU 运行完整 Ubuntu 22.04
https://www.infvar.com/posts/vmindocker/ 相关文章 智能推荐
1
三星平板 SM-P615C 刷机 LineageOS
实验室 学海平板洋垃圾太卡了,刷新系统焕发新生。
2
从 Claw Cloud Run 迁移 Casdoor:一次被迫重构后的数据初始化修复记录
实验室 记录一次因 Claw Cloud Run 服务不可用导致的 Casdoor 迁移过程,以及在 data initialization 阶段因 ID 结构不一致引发的 panic 修复方案。
3
成都的照片
展览厅 分享一些在成都拍的照片
4
Chrome 将我的后台登录页标记为危险:一次 Safe Browsing 误判排查记录
实验室 记录一次后台登录页面被 Chrome 标记为 Social Engineering 的排查与修复全过程,以及如何避免再次误判。
5
使用AI开发纯血鸿蒙arkTS应用的进阶指南(VSCode+Copilot)
实验室 2026-02-16
随机文章 随机推荐
无穷量?