This repository contains Dockerfile
s used to build Kathará images. A list of the Docker images we provide can be found at this page in the Docker Hub.
Images are built both with docker build
and with docker buildx
for multi-architecture support.
Currently our images are based on Debian 10 (tag debian10
) and Debian 11 (tag debian11
), are compiled for amd64
and arm64
. latest
tag is a retag of debian11
.
If you need images based on other Linux distributions, feel free to create a PR with other Dockerfiles.
Currently available images are:
kathara/base
: used to build all other images. It contains a variety of network tools and some complex services like bind, apache, etc.kathara/quagga
: extends the base image adding the Quagga routing daemon.kathara/frr
: extends the base image adding FRRouting.kathara/sdn
: extends the base image adding OpenVSwitch and Ryu SDN controller.kathara/p4
: extends the base image adding Behavioral Model (bmv2) to compile P4 code.kathara/bird
: extends the base image adding Bird.
To build an image from source, enter the directory according to the desired Debian version and run make <image_name>
to build for the current architecture.
To build an image with docker buildx
for multi-architectures use the command make <image_name>-multi
.
Beware: building images with docker buildx
automatically push the images on the Kathará Docker Hub. If you are not allowed to push, change the Makefile
before running make
.
Example: make bird
or make bird-multi
.
The easiest way to extend a Kathará image is to clone this repository, change the Dockerfile according to your needings and locally build the new image.
If you instead want to alter (locally) an existing Kathará image, refer to the following steps:
docker pull kathara/<image_name>
docker run -tid --name <container_name> kathara/<image_name>
docker exec -ti <container_name> bash
- Do your thing, then exit.
docker commit <container_name> kathara/<image_new_name>
docker rm -f <container_name>