With the growing number of containerized Network Operating Systems grows the demand to run them in user-defined lab topologies.
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.
Start here#
-
Quickstart
Install containerlab, fetch a sample topology and deploy the lab.
-
Topology definition
The topology file describes nodes, links and lab settings.
-
Kinds
Kinds define how different NOSes, VMs, containers and services are started.
-
Lab examples
Small lab topologies shipped with containerlab and documented in the catalog.
Topology wiring#
Container orchestration tools like docker-compose are not a good fit for this purpose, as they do not allow a user to easily create connections between the containers which define a topology.
Common workflows#
-
Command reference
Commands for lab lifecycle, inspection, execution, graphing and tools.
-
GUI
VS Code extension, desktop application and web UI.
-
Networking
Management network, node links, bridges, host endpoints and link impairments.
-
Clabernetes
Running containerlab-style topologies on Kubernetes.
Supported platforms#
Containerlab focuses on the containerized Network Operating Systems which are typically used to test network features and designs. It can also launch traditional virtual machine based routers using vrnetlab or boxen integration, and it can wire arbitrary linux containers into a lab.
-
Nokia
SR Linux, SR OS SR-SIM and SR OS vSIM.
-
Cisco
XRd, XRv, XRv9k, CSR1000v, Nexus 9000v, Catalyst 9000v, IOL, ASAv and FTDv.
-
Juniper
cRPD, cSRX, vMX, vQFX, vSRX, vJunos-router, vJunos-switch and vJunosEvolved.
-
Other kinds
Arista, SONiC, Cumulus VX, VyOS, FRR, VPP, FreeBSD, OpenBSD, OpenWRT and more.
Overview video#
This short clip demonstrates containerlab features and explains its purpose:
Use cases#
- Labs and demos
Containerlab can be used to provision networking labs built with containers. No software apart from Docker is required on the lab host. - Testing and CI
Because of the containerlab's single-binary packaging and code-based lab definition files, CI systems can spin up containerlab topologies in a single command. - Telemetry validation
Containerlab labs can be used together with telemetry stacks to validate collection, transport and visualization workflows.
Join us#
Have questions, ideas, bug reports or just want to chat? Come join our discord server.