33 lines
810 B
Markdown
33 lines
810 B
Markdown
# boco
|
|
|
|
Turning containers into bootable VMs
|
|
|
|
## Example
|
|
|
|
```sh
|
|
# Build the container
|
|
podman build ./example/alpine -t boco-alpine
|
|
|
|
# Make the container bootable. boco injects /boco/init and /boco/exec,
|
|
# then packs the rootfs as a qcow2 disk.
|
|
boco build qcow2 boco-alpine
|
|
|
|
# Boot the image using QEMU. The container's CMD runs automatically.
|
|
boco boot boco-alpine
|
|
|
|
# Override the command at runtime (base64-encoded on the kernel cmdline):
|
|
boco boot boco-alpine --cmd '/bin/sh'
|
|
|
|
# Override the command at build time (baked into /boco/exec):
|
|
boco build qcow2 boco-alpine --cmd '/bin/sh'
|
|
|
|
# Cleanup
|
|
boco image rm boco-alpine
|
|
podman image rm boco-alpine
|
|
```
|
|
|
|
## Kernel
|
|
|
|
boco boots VMs using a shared kernel at `$XDG_DATA_HOME/boco/registry/vmlinuz`.
|
|
Place a suitable x86 bzImage there before running `boco boot`.
|