Usable development container for Network Principles in Practice: Linux Networking by Eric Keller.
- Tested on a Mac computer with Apple silicon
- Use your favorite development environment that supports Development Container Specification
- Faster than the virtual machines
- So easy setup
- Fully prepared lab environment
- Tuned experience for Visual Studio Code
- Built-in commands for Module 4
- I advise that you can skip the
sudo modprobe ip_vscommand in most computers when doing the ipvs practice. Actually, themodprobecommand does not come installed in the dev container. - I tried using Edgeshark. It could not capture the packets inside the private topology of containerlab. It seemed that Edgeshark could not detect the network interface.
- It will take some time to build the container when you open the dev container for the first time.
- Please submit an issue if you have any difficulties.
With GitHub CLI
gh repo clone MCPE-PC/devcontainer-npp-eric-keller -- --recurse-submodulesOr, using Git
git clone --recurse-submodules https://github.com/MCPE-PC/devcontainer-npp-eric-keller.git
# git clone --recurse-submodules git@github.com:MCPE-PC/devcontainer-npp-eric-keller.gitOr, if you have cloned without --recurse-submodules
git submodule update --init --recursive- Please install Docker Engine on your computer.
- Please follow this instruction if you are using Visual Studio Code.
- If you are on a Mac computer with Apple silicon, the Docker image ekellercu/network-testing will require Rosetta 2 installed. Please use
softwareupdate --install-rosetta- Eric Keller recommends installing Wireshark on your computer to open the .pcap files.
Prepend node1 and node2 before your command
to execute it in the corresponding node.
node1 ./clear-fw.shTip
The working directory will be the root of the Module 4 directory.
If you prefer, node1sh and node2sh will start the login shell of the node.
❯ node1sh
root@node1:/lab-module-04#
Important
When you run these commands for the first time, there will be a delay due to deploying the Module 4 containerlab topology.
After finishing Module 4, run nodesdestroy to
destroy the Module 4 containerlab topology and go ahead.
nodesdestroyNote
You can also use the nodesdeploy command to
manually deploy the Module 4 containerlab topology.
You need to install the Dev Containers extension. It will automatically show up as recommended if it is not already installed.
To start the lab environment, open the folder in Visual Studio Code and run
Dev Containers: Reopen in Container in the command palette(⇧⌘P).
You can also use the prompt message or the other commands.
The dev container configuration file contains hand-picked settings and extensions, including containerlab and Kubernetes Tools.
You can open an integrated terminal(⌃⇧`) and do the lab.
Each of the files and the submodules has a different license. Please refer to the source code, README.md, or LICENSE file in the directories.
This README.md is licensed under CC BY 4.0.
© 2025 Jaehyeon Park
The University of Colorado Boulder and Eric Keller are not associated with this project.