Your first container in 5 minutes
Install cardinal, pull an image, and run a web server with port mapping — end to end.
This guide walks you from an empty server to a running web container. You need
a Linux machine (or WSL) with curl — nothing else.
1. Install cardinal
One line installs the binary, dependencies and the boot supervisor:
curl -fsSL https://raw.githubusercontent.com/animesao/cardinal/main/install.sh | sudo bash
Verify it worked:
cardinal version
cardinal doctor
2. Pull an image
Images are OCI/Docker images from any registry — Docker Hub by default:
cardinal pull nginx:alpine
cardinal images lists what's stored locally.
3. Run a container
Start nginx detached, mapping host port 8080 to the container's port 80:
cardinal run -d -n web -p 8080:80 nginx:alpine
cardinal creates the cardinal0 bridge, gives the container the IP
10.0.2.2, and wires up iptables DNAT for the port. Check it:
cardinal ps
curl http://localhost:8080
4. Peek inside
cardinal exec web nginx -v # run a command
cardinal console web # interactive shell
cardinal logs -f web # follow stdout
cardinal stats web # CPU / memory
5. Stop and clean up
cardinal stop web # stops, data in the overlay is kept
cardinal start web # start again later
cardinal rm -f web # remove (overlay data is deleted)
That's the whole loop: pull → run → exec → stop. The same pattern powers
everything else on this site — blueprints are just pre-configured versions of
these commands.