Home

Awesome

<p align=center><a href="https://containerlab.dev"><img src=docs/images/containerlab_export_white_ink.svg?sanitize=true/></a></p>

github release Github all releases Doc Twitter Discord Go Report


With the growing number of containerized Network Operating Systems grows the demand to easily run them in the user-defined, versatile lab topologies.

Unfortunately, container orchestration tools like docker-compose are not a good fit for that purpose, as they do not allow a user to easily create connections between the containers which define a topology.

Containerlab provides a CLI for orchestrating and managing container-based networking labs. It starts the containers, builds a virtual wiring between them to create lab topologies of users choice and manages labs lifecycle.

pic

Containerlab focuses on the containerized Network Operating Systems which are typically used to test network features and designs, such as:

In addition to native containerized NOSes, containerlab can launch traditional virtual machine based routers using vrnetlab or boxen integration:

And, of course, containerlab is perfectly capable of wiring up arbitrary linux containers which can host your network applications, virtual functions or simply be a test client. With all that, containerlab provides a single IaaC interface to manage labs which can span contain all the needed variants of nodes:

<p align="center"> <img src="https://gitlab.com/rdodin/pics/-/wikis/uploads/bb8d9163f265dc827428097e6726d949/image.png" width="80%"> </p>

This short clip briefly demonstrates containerlab features and explains its purpose:

vid

Features

Use cases

Containerlab documentation is provided at https://containerlab.dev.