A desktop app for building and experimenting with network topologies using real Docker containers.
NetLab lets students design a network topology visually — nodes, cables, switches — and have each element backed by a real, runnable environment: every node is a Docker container, every cable/link is a real Docker network. Students configure IP addresses, routes, bridges and firewall rules by hand, inside the actual container's shell, exactly as they would on real hardware — NetLab only handles the wiring, not the networking itself.
- Visual topology editor — drag nodes onto a canvas, connect them with links, pan/zoom, resize the layout.
- Real containers, real shells — every node opens in your OS's native terminal (not an emulator embedded in the app), attached via
docker exec. - Multiple base images — Alpine, Debian, and Ubuntu, each pre-loaded with a full network toolset (
iproute2,iptables,bridge-utils,tcpdump,ethtool, and more). - Switch nodes — a node can bridge two links together (
ip link add br0 type bridge), taught and built by the student; NetLab transparently works around a Docker Desktop quirk (hairpin mode) that would otherwise break it. - Internet-facing nodes — a dedicated WAN bridge with NAT, for exercises that need outbound connectivity while the student still configures
ip_forward/iptables MASQUERADEthemselves. - Self-healing — Docker resources NetLab owns (networks, custom images, orphaned containers) are detected and rebuilt automatically if something external interferes with them (e.g.
docker network rmrun by hand). - Bilingual UI — Italian and English, switchable at runtime.
- Docker (Docker Desktop on Windows/macOS, or Docker Engine on Linux), installed and running.
Download the installer for your platform from the Releases page:
- Windows —
NetLab Setup x.y.z.exe - macOS —
NetLab-x.y.z.dmg - Linux —
NetLab-x.y.z.AppImage(self-contained —chmod +xit and run it) ornetlab-app_x.y.z_amd64.deb(install withsudo apt install ./netlab-app_x.y.z_amd64.deb)
Make sure Docker is running before you launch NetLab.
NetLab isn't code-signed (that requires a paid certificate), so the OS will warn you the first time you run it — this is the same warning any unsigned app triggers, not something specific to NetLab:
- Windows: SmartScreen shows "Windows protected your PC". Click More info, then Run anyway. If it was blocked silently instead, go to Settings → Privacy & security → Windows Security → Virus & threat protection → Protection history to allow it.
- macOS: Gatekeeper refuses to open it ("cannot be opened because the developer cannot be verified"). Go to System Settings → Privacy & Security, scroll down, and click Open Anyway next to the NetLab message.
- Linux (AppImage): needs
libfuse2installed (sudo apt install libfuse2, orlibfuse2t64on newer distros) — without it the AppImage fails to mount and won't start. The.debpackage doesn't have this requirement.
See the user guide for a step-by-step walkthrough of building your first topology.
See the developer guide for the project's architecture, how to run it locally, and how to build a release.