- Home
- Network Simulation Software
- Containerlab
Containerlab
What it is
Containerlab is an open-source command-line tool for orchestrating container-based networking labs. Users define a lab in a topology file describing nodes, links, and settings, then use commands to deploy, destroy, save, inspect, or graph it. Supported nodes include containerized and virtual-machine network operating systems from Nokia, Cisco, Juniper, Arista, and other vendors and projects. The project lists platforms such as Nokia SR Linux and SR OS, Cisco XRd and Nexus 9000v, Juniper cRPD and vMX, SONiC, Cumulus VX, VyOS, FRR, VPP, FreeBSD, OpenBSD, OpenWRT, Linux containers, and generic VMs. It can launch VM-based routers through vrnetlab or boxen, and Clabernetes can run Containerlab-style topologies on Kubernetes. Optional graphical interfaces include a VS Code extension, desktop app, and web app; the latter two connect to a reachable clab-api-server on a Linux host. Labs can also be used in CI systems such as GitLab CI and GitHub Actions. Containerlab is free. Documented prerequisites include a Linux server or VM, Docker, and sudo privileges for some operations.
For and against
For
- Topology files define nodes, links, and lab settings
- CLI supports deploy, destroy, save, inspect, and graph
- Supports containerized and virtual-machine network operating systems
- Can run lab topologies in CI systems
Against
- Requires a Linux server or VM and Docker
- Some operations require sudo privileges
- Sudo-less setup can grant group members root-level privileges
The verdict
Containerlab provides a free, code-defined way to manage networking labs across a broad set of supported platforms. Its Linux and Docker prerequisites, along with the privilege implications of its installer option, deserve consideration.
Who it suits
Containerlab suits network engineers and teams building or testing network topologies in a self-hosted lab. Its topology files can also suit users who want to start labs in CI systems.
Plans and prices
Free and open-source
Self-hosted · Docker/Linux host required · Vendor images may require separate licences
Read 15 Oct 2026 · github.com
Containerlab
Linux server or VM · Docker required · sudo privileges required for some operations
Read 2 Oct 2026 · containerlab.dev
On the record
- API
- The clab-api-server performs lab lifecycle, file, terminal, capture, image, and inspection operations on the Linux host.containerlab.dev · read 2 Oct 2026
- API documentation
- Running API servers expose Swagger and Redoc documentation and have a published API reference.containerlab.dev · read 15 Oct 2026
- API security
- The API server authenticates host Linux users and groups, returns JWT tokens, defaults to HTTPS, and can generate self-signed certificates.containerlab.dev · read 15 Oct 2026
- API server
- clab-api-server exposes lab operations over HTTP for automation, browser clients, desktop GUI, and shared lab hosts, embedding Containerlab as a Go library.containerlab.dev · read 15 Oct 2026
- CI and testing
- The project describes using its single binary and code based lab definitions to start topologies in CI systems, including GitLab CI and GitHub Actions.github.com · read 2 Oct 2026
- CI use
- The single binary and code-defined labs are intended for GitHub Actions, GitLab CI, and other CI systems.github.com · read 15 Oct 2026
- Company ownership
- The repository says Containerlab was kick-started by Nokia engineers and supports multi-vendor platforms.github.com · read 15 Oct 2026
- Documentation depth
- Documentation covers installation, quickstart, topology syntax, kinds, networking, commands, GUI, API server, Clabernetes, examples, releases, and developer contribution workflows.containerlab.dev · read 15 Oct 2026
- GUI options
- The graphical interface is available as a VS Code extension, desktop app, and web app; desktop and web connect to a reachable clab-api-server.containerlab.dev · read 2 Oct 2026
- Integrations
- Containerlab can launch VM based routers through vrnetlab or boxen integration and can run containerlab style topologies on Kubernetes through Clabernetes.containerlab.dev · read 2 Oct 2026
- Kinds abstraction
- Platform-specific kinds hide the startup, mount, entrypoint, and command differences between network operating systems and other node types.containerlab.dev · read 15 Oct 2026
- Kubernetes integration
- Clabernetes runs containerlab-style topologies on Kubernetes through a controller, CRDs, and the clabverter conversion tool.containerlab.dev · read 15 Oct 2026
- Licence
- The main repository is publicly marked as BSD-3-Clause licensed.github.com · read 15 Oct 2026
- License
- The public GitHub repository identifies the project license as BSD-3-Clause.github.com · read 2 Oct 2026
- Lifecycle commands
- The project provides deploy, destroy, save, inspect, and graph operations for lab management.github.com · read 15 Oct 2026
- Limit: commercial images
- NetPilot reports that commercial Cisco, Juniper, Arista, Palo Alto, and Fortinet images are bring-your-own-image and may require vrnetlab builds and registry troubleshooting.netpilot.io · read 15 Oct 2026
- Limit: configuration scope
- NetPilot states that Containerlab wires topologies and applies supplied startup configuration but does not generate BGP, OSPF, or EVPN device configuration.netpilot.io · read 15 Oct 2026
- Limit: host setup
- NetPilot's independent guide says local use requires Linux, Docker, and usually root, so Containerlab does not run natively on macOS or Windows.netpilot.io · read 15 Oct 2026