A minimal container runtime written in Go that was made mainly for learning purposes and is intended to be as simple as possible.
Minict is a minimal container runtime written in Go. It was made mainly for learning purposes and is intended to be as simple as possible.
Its main intention is to be easily understandable to anyone who wishes to read its code and see what goes into running containers in famous runtimes such as Containerd and full container-running platforms like Docker.
Minict runs OCI standard images and supports pulling images from existing registries.
gpgme-develpackage must be installed on your system.
sudo dnf install gpgme-develon RHEL-based distros (RHEL, CentOS, Fedora, etc.)
sudo apt install libgpgme-devon Debian-based distros (Debian, Ubuntu, etc.)
Getting startedsection below or by running the executable with the
-hflag. ## Building & Running
$HOME/go/srcdirectory and run
minictexecutable in your directory. Run
chmod a+x minictand it can now be used.
minictexecutable to a directory that is in your
PATHvariable. One such directory should be
## Getting Started * Pulling an image:
bash sudo minict pull --image ubuntu:20.04* Running a new container:
bash sudo minict run --image ubuntu:20.04 --name ubuntu-ctr* Starting an existing container:
bash sudo minict start --name ubuntu-ctr* Listing all images: ```bash
sudo minict list-images
[ "alpine:latest", "ubuntu:20.04" ]
* Listing all containers:bash
sudo minict list-containers
[ "container1", "container2", "alpine-ctr", "ubuntu-ctr" ]
* Removing an existing container:bash sudo minict rm --name ubuntu-ctr ```
/var/lib/minictdirectory for everything that it stores on disk. This can be changed by setting the
MINICT_DIRenvironment variable to a new location. For example:
bash sudo MINICT_DIR=/new/location minict pull --image alpine:3.11