Comprendre et dépanner les réseaux Docker : bridge, overlay, macvlan, DNS interne, ports publiés, réseaux Compose, isolation et inspection entre conteneurs.
docker network lsLister les réseauxdocker network inspect bridgeInspecter le bridge par défautdocker infoVérifier les plugins réseau disponiblesdocker network create app-netCréer un bridge utilisateurdocker run -d --name db --network app-net postgres:17Lancer la base sur ce réseaudocker run -d --name web --network app-net nginx:alpineLancer le web sur le même réseaudocker exec web getent hosts dbRésoudre le nom du conteneur dbdocker network inspect app-netVérifier les membres et l'IPAMdocker run -d --name web -p 8080:80 nginx:alpinePublier sur toutes les interfaces de l'hôtedocker run -d --name web-local -p 127.0.0.1:8081:80 nginx:alpineLimiter à localhostdocker port webVoir les associations de portsdocker inspect -f '{{json .NetworkSettings.Ports}}' webInspecter les ports en JSONdocker network create --driver bridge --subnet 172.30.0.0/16 --gateway 172.30.0.1 app-netdocker run -d --name api --network app-net --ip 172.30.0.10 nginx:alpinedocker network inspect app-netdocker network connect app-net conteneurAjouter un réseau à chauddocker network connect --alias database app-net dbAjouter un alias DNSdocker network disconnect app-net conteneurRetirer le réseaudocker inspect -f '{{json .NetworkSettings.Networks}}' conteneurVoir tous ses réseauxservices:web:image: nginx:alpinenetworks:- frontendapi:image: mon-api:latestnetworks:- frontend- backenddb:image: postgres:17networks:- backendnetworks:frontend:backend:internal: truedocker compose configAfficher la configuration finaledocker compose up -dCréer les réseaux et servicesdocker compose psVoir l'état des servicesdocker network ls --filter label=com.docker.compose.projectRetrouver les réseaux Composedocker exec api getent hosts dbRésolution DNS internedocker exec api ping -c 3 dbTest ICMP si ping est installédocker exec api sh -c 'wget -S -O- http://web 2>&1 | head'Tester HTTPdocker run --rm --network app-net alpine getent hosts apiConteneur de diagnostic temporairedocker run --rm --network app-net alpine sh -c 'apk add --no-cache curl >/dev/null && curl -I http://web'Tester HTTP avec curldocker exec conteneur ip addressInterfaces du conteneurdocker exec conteneur ip routeTable de routagedocker exec conteneur cat /etc/resolv.confDNS configurédocker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} {{.Gateway}}{{end}}' conteneurIP et passerelleip link show type bridgeBridges Linux de l'hôteip routeRoutes de l'hôtedocker swarm init --advertise-addr 192.168.1.10docker swarm join-token workerdocker network create -d overlay --attachable overlay-appdocker service create --name web --network overlay-app --replicas 2 nginx:alpinedocker network inspect overlay-appdocker network create -d overlay --opt encrypted --attachable overlay-securedocker network create -d macvlan --subnet 192.168.1.0/24 --gateway 192.168.1.1 -o parent=eth0 macvlan-landocker run -d --name dns --network macvlan-lan --ip 192.168.1.50 nginx:alpinedocker network inspect macvlan-lansudo ip link add macvlan-host link eth0 type macvlan mode bridgesudo ip addr add 192.168.1.49/32 dev macvlan-hostsudo ip link set macvlan-host upsudo ip route add 192.168.1.50/32 dev macvlan-hostping -c 3 192.168.1.50docker run --rm --network host nginx:alpinePartager le réseau de l'hôtedocker run --rm --network none alpine ip addressConteneur sans réseau externedocker network create --internal backend-netRéseau sans accès externe normaldocker run -d --name db --network backend-net postgres:17docker network inspect backend-netsudo nft list ruleset | lessVoir le ruleset Netfilter completsudo iptables -S DOCKER-USERChaîne utilisateur avec le backend iptablessudo iptables -t nat -SRègles NAT de publicationsudo conntrack -LConnexions suiviesdocker ps --format 'table {{.Names}}\t{{.Ports}}\t{{.Networks}}'Vue d'ensembledocker network inspect reseauMembres, sous-réseau et optionsdocker inspect conteneurConfiguration complètedocker exec conteneur getent hosts serviceDNS internedocker exec conteneur ip routePasserelle et routesdocker logs --tail 100 conteneurErreur applicative éventuellesudo tcpdump -ni any port 8080Observer le trafic sur l'hôtedocker network rm reseauSupprimer un réseau inutilisé précisdocker network pruneSupprimer tous les réseaux inutilisés après confirmationdocker network ls --filter dangling=truePrévisualiser les réseaux inutilisésAucune commande ne correspond à ce filtre.