42 lines
854 B
Markdown
42 lines
854 B
Markdown
# boco
|
|
|
|
Turn container images into bootable VMs
|
|
|
|
## Example
|
|
|
|
```Dockerfile
|
|
# ./example/alpine/Containerfile
|
|
FROM alpine:latest
|
|
CMD ["/bin/sh"]
|
|
```
|
|
|
|
```sh
|
|
# Build the container
|
|
podman build ./example/alpine -t boco-alpine
|
|
|
|
# Make the container bootable. boco injects a custom init program,
|
|
# then packs the rootfs as a qcow2 disk.
|
|
boco build qcow2 boco-alpine
|
|
|
|
# Boot the image using QEMU, and drop into /bin/sh.
|
|
boco boot boco-alpine
|
|
|
|
# Cleanup
|
|
boco image rm boco-alpine
|
|
podman image rm boco-alpine
|
|
```
|
|
|
|
Can also be used to boot a more traditional systemd-based VM:
|
|
|
|
```Dockerfile
|
|
FROM archlinux:latest
|
|
|
|
# This works! Although you should probably add a user or some services.
|
|
CMD ["/sbin/init"]
|
|
```
|
|
|
|
## 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`.
|