Small Computer Network Emulation

I’m just learning Docker and working my way through the tutorial. It looks very useful and I know I’ll be using it a lot.

For some network monitoring demonstrations, I’d like to create something similar to this:

I.e., a small network of computers connected via a layer 2 switch where the host computer can also use the same network and monitor it with a promiscuous port at the switch. The switch can be virtual - I only placed it here to show that the host computer should be able to communicate with all the other docker hosts and monitor everything on the network. For example, the host should be able to ssh into any host and then from there ssh into any other docker host. The docker hosts should communicate through IPv4 which can be monitored from the host via something like Wireshark.

I could create this with VMware or VirtualBox with full-blown VMs, but I’d like a much smaller footprint on the host demonstrating the network.

Is it possible to do this with Docker?

Would someone please get me going in the right direction so I can progress to the demonstration phase as quickly as possible? For this application, it’s OK for me to demonstrate first and understand later.

Thanks in advance.