
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
tianon/qemu是一个基于QEMU的容器化镜像,旨在通过Docker环境快速部署和运行QEMU虚拟机。该镜像将QEMU虚拟化功能与Docker容器的便捷性结合,允许用户通过环境变量和命令行参数灵活配置虚拟机参数,无需在宿主机直接安装和配置QEMU。
主要用途:提供轻量级、可定制的虚拟机运行环境,适用于开发测试、系统模拟、操作系统安装调试等场景,尤其适合需要快速搭建隔离环境的用户。
源代码地址:https://github.com/tianon/docker-qemu
--device /dev/kvm参数利用宿主机KVM设备,显著提升虚拟机运行性能(需宿主机支持KVM)。QEMU_HDA、QEMU_CPU)简化虚拟机核心参数配置,无需手动编写复杂QEMU命令。QEMU_PORTS自定义映射其他TCP端口。start-qemu <args>命令传递QEMU原生参数,满足高级配置需求(如图形界面、网络调试等)。ovmf包,可通过--bios参数启用UEFI启动模式,支持现代操作系统引导。创建磁盘镜像:在宿主机创建QEMU磁盘文件(qcow2格式),用于虚拟机存储:
console$ touch /home/jsmith/hda.qcow2 # 或使用qemu-img创建指定大小:qemu-img create -f qcow2 /home/jsmith/hda.qcow2 100G
准备安装介质:下载操作系统ISO文件(如Debian、Ubuntu安装镜像),存放于宿主机路径(如/home/jsmith/downloads/debian.iso)。
通过以下命令启动QEMU虚拟机容器(以安装Debian为例):
console$ docker run -it --rm \ --device /dev/kvm \ # 启用KVM加速(需宿主机支持KVM) --name qemu-container \ # 容器名称 -v /home/jsmith/hda.qcow2:/tmp/hda.qcow2 \ # 挂载宿主机磁盘镜像到容器内 -e QEMU_HDA=/tmp/hda.qcow2 \ # 指定虚拟机主磁盘路径(容器内路径) -e QEMU_HDA_SIZE=100G \ # 主磁盘大小(若磁盘文件未初始化,自动创建指定大小) -e QEMU_CPU=4 \ # 分配CPU核心数 -e QEMU_RAM=4096 \ # 分配内存大小(MB) -v /home/jsmith/downloads/debian.iso:/tmp/debian.iso:ro \ # 挂载ISO安装介质(只读) -e QEMU_CDROM=/tmp/debian.iso \ # 指定CDROM设备路径(容器内) -e QEMU_BOOT='order=d' \ # 启动顺序(d: CDROM优先,c: 硬盘优先) -e QEMU_PORTS='2375 2376' \ # 自定义映射端口(空格分隔) tianon/qemu
创建docker-compose.yml文件,实现容器化部署编排:
yamlversion: '3' services: qemu-vm: image: tianon/qemu container_name: qemu-container devices: - /dev/kvm # 启用KVM加速 volumes: - /home/jsmith/hda.qcow2:/tmp/hda.qcow2 # 虚拟机磁盘(宿主机路径:容器内路径) - /home/jsmith/downloads/debian.iso:/tmp/debian.iso:ro # 安装ISO(只读) environment: - QEMU_HDA=/tmp/hda.qcow2 - QEMU_HDA_SIZE=100G - QEMU_CPU=4 - QEMU_RAM=4096 - QEMU_CDROM=/tmp/debian.iso - QEMU_BOOT=order=d - QEMU_PORTS=2375 2376 stdin_open: true # 保持标准输入打开(交互模式) tty: true # 分配伪终端(支持终端交互) restart: unless-stopped # 可选:容器退出后自动重启(除非手动停止)
启动容器:
console$ docker-compose up -d
4.4.1 环境变量
| 环境变量 | 描述 | 示例值 |
|---|---|---|
QEMU_HDA | 虚拟机主磁盘路径(容器内路径,需通过-v挂载宿主机文件) | /tmp/hda.qcow2 |
QEMU_HDA_SIZE | 主磁盘大小(若磁盘文件未初始化,自动创建qcow2格式文件) | 100G(100GB)、20480M(20GB) |
QEMU_CPU | 分配给虚拟机的CPU核心数 | 4(4核) |
QEMU_RAM | 分配给虚拟机的内存大小(MB) | 4096(4GB) |
QEMU_CDROM | CDROM设备路径(容器内路径,需挂载ISO文件,建议设为只读ro) | /tmp/debian.iso |
QEMU_BOOT | 启动设备顺序(d=CDROM,c=硬盘,a=软盘) | order=d(优先从CDROM启动) |
QEMU_PORTS | 自定义映射的TCP端口(空格分隔,容器内端口映射到宿主机随机端口) | 2375 2376 |
4.4.2 端口映射规则
默认端口:无论QEMU_PORTS是否配置,容器自动映射22端口(SSH)到宿主机随机端口,可通过docker port qemu-container查看映射结果:
console$ docker port qemu-container 22/tcp -> 0.0.0.0:49153 # 示例:宿主机49153端口映射到容器22端口
自定义端口:QEMU_PORTS指定的端口将额外映射到宿主机随机端口,例如QEMU_PORTS=2375 2376会映射2375和2376端口。
4.4.3 传递额外QEMU参数
如需使用QEMU原生参数(如字符界面、网络调试),可通过start-qemu <args>命令传递,例如启用字符界面(-curses):
console$ docker run -it --rm \ --device /dev/kvm \ -v /home/jsmith/hda.qcow2:/tmp/hda.qcow2 \ -e QEMU_HDA=/tmp/hda.qcow2 \ tianon/qemu start-qemu -curses # 传递-curses参数启用字符界面
4.4.4 UEFI启动配置
镜像集成ovmf包(UEFI固件),启用UEFI启动需通过--bios参数指定固件路径:
console$ docker run -it --rm \ --device /dev/kvm \ -v /home/jsmith/hda.qcow2:/tmp/hda.qcow2 \ -e QEMU_HDA=/tmp/hda.qcow2 \ tianon/qemu start-qemu --bios /usr/share/ovmf/OVMF.fd # 使用UEFI固件
4.4.5 网络配置注意事项
默认网络:镜像默认使用QEMU用户模式网络栈(SLIRP),支持虚拟机访问外部网络,但宿主机访问虚拟机需通过端口映射。
ICMP/Ping支持:用户模式网络默认禁用ICMP协议(ping命令),如需启用,需在容器启动时添加sysctl参数:
console$ docker run -it --rm \ --device /dev/kvm \ --sysctl net.ipv4.ping_group_range='0 2147483647' \ # 允许ping操作 ... # 其他参数(如环境变量、挂载) tianon/qemu
KVM依赖:--device /dev/kvm需宿主机支持KVM(检查/dev/kvm是否存在),否则将回退到QEMU纯软件模拟,性能显著下降。
权限要求:容器需有权限访问/dev/kvm设备,建议将宿主机用户添加到kvm组(usermod -aG kvm $USER),避免使用--privileged。
磁盘性能:虚拟机磁盘文件(qcow2)的存储位置影响I/O性能,建议存放于SSD或高性能存储介质。
以下是 tianon/qemu 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务