Supercharge your networking lab with Containerlab
Recently, I discovered that the Containerlab development team released a plugin for VSCodium that provides an integrated GUI experience for managing Containerlab environments. The plugin looked promising, so I decided to try it and explore what it could bring to my workflow.
At first, I was not entirely convinced about the need for a graphical interface for Containerlab. I generally prefer lightweight tools and tend to avoid adding extra layers to my setup, especially on my small desktop machine. Since Containerlab itself is already straightforward and works well from the command line, I initially assumed the plugin was simply a visual wrapper around existing functionality.
After spending some time with it, I found that the plugin offers considerably more than just a graphical interface. Beyond simplifying topology visualization and management, it also integrates additional functionality directly into the VSCodium environment, making the overall workflow more streamlined and convenient.
To get started, the first step is installing the Containerlab plugin in VSCodium. Open the Extensions section, search for Containerlab, and install the plugin as shown below.

Previously, I used GNS3 as the primary platform for building and testing my networking labs across various network devices. While GNS3 is feature-rich and capable of handling complex topologies, I found that Containerlab was significantly lighter and simpler for my specific use case and overall lab environment.
Most of my networking experiments and learning activities are centered around MikroTik RouterOS, as it is also the primary platform used within my home network and homelab infrastructure. Migrating to Containerlab felt like a natural choice since it allows me to build and deploy network topologies with minimal overhead while keeping the setup clean and easy to manage.
To evaluate how well it fit into my workflow, I started with a basic OSPF lab using MikroTik RouterOS version 7. The following topology configuration file was used to build the environment.
The above represents the final state of the OSPF lab running in Containerlab. In this setup, the startup-config: parameter is used to automatically load pre-configured settings for each device during deployment. This approach allows the lab environment to be provisioned with a fully functional configuration from the beginning, eliminating the need for manual device configuration after startup.
The complete lab files, including the topology definition and device startup configurations, are available in the GitHub repository - https://github.com/tylalin/mt-ospf.
The repository contains all required files to reproduce the lab environment and deploy it directly within Containerlab. The following screenshot shows how the topology is presented through the Containerlab plugin integrated into VSCodium.

To deploy the lab environment, simply right-click on the mt-ospf.clab.yml topology file and select Deploy from the context menu.

Once the deployment process is complete, the lab becomes fully operational with all links established and displayed in green, indicating active connectivity between the nodes. Since the topology uses predefined startup configurations, the devices are immediately ready for testing without requiring any additional manual setup.

The VSCodium plugin also provides useful troubleshooting and analysis capabilities. For example, you can right-click on any link within the topology and start a packet capture directly in Wireshark for traffic inspection and protocol analysis.

What makes this especially interesting is that the entire topology operates on containerized network nodes running in Docker behind the scenes. Containerlab abstracts much of the complexity, making it possible to build lightweight, fast, and highly flexible network labs with minimal resource consumption. It is a remarkably powerful approach for creating reproducible networking environments.

Here is the view from the rt1 router located at the top of the topology. It displays the learned OSPF routes from across the entire network, along with the local OSPF configuration applied to the device.

The output also includes basic connectivity validation, including ping tests to verify end-to-end reachability across the lab. This confirms that OSPF adjacency has been successfully established and that route propagation is functioning as expected throughout the topology.
Once you have finished working on the networking lab, cleaning up the environment is straightforward. Simply right-click on the active running lab and select Destroy.

This will remove the deployed topology along with its associated containers and virtual links, freeing up system resources and returning the environment to a clean state. Since Containerlab provisions the lab dynamically, the entire topology can be recreated again at any time using the same configuration files, making the workflow efficient and reproducible.
Last updated