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 11 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/pox
: extends the base image adding POX (Python based SDN Controller) and python3-networkx.
To build an image from source, 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 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>