Docker networking uses Linux bridges which only connect containers on the same host. Containers cannot communicate across hosts. NAT and iptables are used to expose container ports to external networks. Docker's process model runs containers as child processes of the Docker daemon, so if the daemon fails all containers will fail. Alternative container runtimes like Rocket have a more robust process model.