srl-labs / containerlab

container-based networking labs
https://containerlab.dev
BSD 3-Clause "New" or "Revised" License
1.38k stars 243 forks source link
ceos containerlab containers crpd cumulus-vx docker-topo ignite lab-orchestration lab-topologies labs network-automation networking networking-labs sonic srlinux

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:

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

vid

Features

Use cases

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