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 12 and are compiled for amd64
and arm64
.
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 Quagga.kathara/frr
: extends the base image adding FRRouting.kathara/openbgpd
: extend the base image adding the OpenBGPD daemon.kathara/krill
: extends the base image adding Krill RPKI Certificate Authority.kathara/routinator
: extends the base image adding Routinator RPKI Relying Party.kathara/rpki-client
: extends the base image adding OpenBGPD RPKI Client.kathara/bird
: extends the base image adding BIRD.kathara/rift-python
: extends the base image adding Routing In Fat Trees (RIFT) Python Implementation.kathara/sdn
: extends the base image adding OpenVSwitch and Ryu SDN controller.kathara/p4
: extends the base image adding Behavioral Model (bmv2) to compile and run P4-compliant programmable switches.kathara/bind
: a minimal image including just bind (lighter thankathara/base
). Supports bind 9.18 (latest), 9.16 (latest not forcing DNSSEC) and 9.11.
To build an image from source, run make <image_name>
to build for the current architecture.
Beware: images which support multiple versions can be build running make <image_name>:<version>
(e.g., make bind:9.16
).
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 quagga
or make quagga-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>