NAT (Network Address Translation) — замена адресов в сетевых пакетах при прохождении через маршрутизатор. SNAT меняет адрес источника (твои пакеты выходят в интернет с IP роутера), DNAT меняет адрес назначения (внешний запрос попадает на внутренний сервер). Docker использует DNAT для port mapping: пакет на хост:8080 перенаправляется на контейнер:80. Домашний роутер использует SNAT/masquerade, чтобы все устройства выходили в интернет через один IP.