Podman管理虚拟机

Podman管理虚拟机有两种方式,一种是通过podman machine来创建并管理虚拟机,在Windows/MacOS上想使用Podman功能时需要通过该方式创建一个虚拟机,但也可以在Linux上使用(虽然不是必要的);另一种方式是以OCI容器运行时方式来管理虚拟机,像管运行普通容器一样运行虚拟机。

Podman Machine 方式

podman machine init vm-name --cpus 4 --memory 4096 --disk-size 10
podman machine ssh vm-name

Podman crun-vm 方式

编译 crun-vm

podman run --rm -it -v /:/host registry.fedoraproject.org/fedora:latest

dnf install bash coreutils crun genisoimage grep libselinux-devel \
    libvirt-client libvirt-daemon-driver-qemu libvirt-daemon-log \
    openssh-clients qemu-img qemu-system-x86-core shadow-utils util-linux virtiofsd cargo

git clone --depth=1 https://github.com/containers/crun-vm.git

cargo build

cp target/debug/crun-vm /host/usr/bin/crun-vm

创建虚拟机镜像

Dockerfile:

FROM scratch

COPY noble-server-cloudimg-amd64.img /disk/

执行命令:

wget https://mirrors.huaweicloud.com/ubuntu-cloud-images/noble/current/noble-server-cloudimg-amd64.img

podman build -t ubuntu-vm:latest .

创建并登录虚拟机

podman run --runtime crun-vm --name ubuntu-vm -d ubuntu-vm:latest ""

podman logs -f ubuntu-vm

podman exec -it ubuntu-vm --as ubuntu

注意:genisoimage在Archlinux上的软件包名为cdrtools

使用虚拟机

执行podman exec -it ubuntu-vm --as ubuntu之后,就登录进虚拟机做你想做的事情了。