This repository contains Dockerfiles 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 latest 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/core: used to build all other images. It contains a variety of commonly used network tools.- Available tags:
kathara/core:latest.
- Available tags:
kathara/apache: extends the core image by adding the Apache webserver.- Available tags:
kathara/apache:latest.
- Available tags:
kathara/bind: extends the core image by adding the BIND9 DNS daemon.- Available tags:
kathara/bind:9.11.5(v9.11.5) andkathara/bind:latest.
- Available tags:
kathara/base: extends the core image by adding BIND9, Apache and dnsmasq.- Available tags:
kathara/base:latest.
- Available tags:
kathara/bird: extends the core image adding BIRD.- Available tags:
kathara/bird:latest(v1.6.8).
- Available tags:
kathara/bird2: extends the core image adding BIRD 2.- Available tags:
kathara/bird2:2.0.8(v2.0.8) andkathara/bird2:latest.
- Available tags:
kathara/bird3: extends the core image adding BIRD 3.- Available tags:
kathara/bird3:latest.
- Available tags:
kathara/bmv2: extends the core image adding Behavioral Model (bmv2) to compile and run P4-compliant programmable switches.- Available tags:
kathara/bmv2:latest(also retagged askathara/p4:latest).
- Available tags:
kathara/dnsmasq: extends the core image adding dnsmasq.- Available tags:
kathara/dnsmasq:latest.
- Available tags:
kathara/frr: extends the core image adding FRRouting.- Available tags:
kathara/frr:9,kathara/frr:10, andkathara/frr:latest.
- Available tags:
kathara/krill: extends the core image adding Krill RPKI Certificate Authority.- Available tags:
kathara/krill:latest.
- Available tags:
kathara/openbgpd: extend the core image adding the OpenBGPD daemon.- Available tags:
kathara/openbgpd:latest.
- Available tags:
kathara/openvswitch: extends the core image adding OpenVSwitch.- Available tags:
kathara/openvswitch:latest(also retagged askathara/sdn:latest).
- Available tags:
kathara/pox: extends the core image adding POX (Python based SDN Controller) andpython3-networkx.- Available tags:
kathara/pox:latest.
- Available tags:
kathara/quagga: extends the core image adding Quagga.- Available tags:
kathara/quagga:latest.
- Available tags:
kathara/rift-python: extends the core image adding Routing In Fat Trees (RIFT) Python Implementation.- Available tags:
kathara/rift-python:latest.
- Available tags:
kathara/routinator: extends the core image adding Routinator RPKI Relying Party.- Available tags:
kathara/routinator:latest.
- Available tags:
kathara/rpki-client: extends the core image adding OpenBGPD RPKI Client.- Available tags:
kathara/rpki-client:latest.
- Available tags:
kathara/scion: extends the core image adding SCION (Scalability, Control, and Isolation On Next-Generation Networks).- Available tags:
kathara/scion:0.12.0(v0.12.0) andkathara/scion:latest.
- Available tags:
To build an image from source, run make build_<image_name> to build for the current architecture. <image_name> is one of the folders of the repository.
To build an image with docker buildx for multi-architectures use the command make build_multi_<image_name>.
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 build_quagga or make build_multi_quagga.
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>