Skip to content

github release Github all releases DeepWiki Bluesky Discord

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.

    Quickstart

  • Topology definition


    The topology file describes nodes, links and lab settings.

    Topology definition

  • Kinds


    Kinds define how different NOSes, VMs, containers and services are started.

    Kinds

  • Lab examples


    Small lab topologies shipped with containerlab and documented in the catalog.

    Lab examples

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.

    Commands

  • GUI


    VS Code extension, desktop application and web UI.

    GUI

  • Networking


    Management network, node links, bridges, host endpoints and link impairments.

    Network

  • Clabernetes


    Running containerlab-style topologies on Kubernetes.

    Clabernetes

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.

    Nokia SR Linux

  • Cisco


    XRd, XRv, XRv9k, CSR1000v, Nexus 9000v, Catalyst 9000v, IOL, ASAv and FTDv.

    Cisco XRd

  • Juniper


    cRPD, cSRX, vMX, vQFX, vSRX, vJunos-router, vJunos-switch and vJunosEvolved.

    Juniper cRPD

  • Other kinds


    Arista, SONiC, Cumulus VX, VyOS, FRR, VPP, FreeBSD, OpenBSD, OpenWRT and more.

    All kinds

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.