En aquest tema, explorarem en profunditat com funciona la xarxa a Docker. Entendre la xarxa és crucial per a la configuració i l'optimització de contenidors en entorns de producció. Aquest mòdul cobreix els conceptes bàsics, els tipus de xarxes disponibles, la configuració avançada i exemples pràctics.
Objectius d'aprenentatge
- Comprendre els conceptes bàsics de la xarxa a Docker.
- Conèixer els diferents tipus de xarxes Docker.
- Aprendre a crear i gestionar xarxes Docker.
- Configurar xarxes avançades per a contenidors.
Conceptes bàsics de la xarxa a Docker
Docker proporciona diverses opcions de xarxa per connectar contenidors entre ells i amb el món exterior. Els conceptes clau inclouen:
- Bridge Network: La xarxa per defecte que Docker crea per als contenidors.
- Host Network: Permet que un contenidor comparteixi la xarxa del sistema host.
- Overlay Network: Utilitzada per a serveis en un clúster Docker Swarm.
- Macvlan Network: Assigna una adreça MAC única a cada contenidor, permetent que actuïn com a dispositius físics a la xarxa.
Tipus de xarxes Docker
Bridge Network
La xarxa per defecte que Docker crea per als contenidors. És ideal per a aplicacions que s'executen en un sol host.
# Crear una xarxa bridge docker network create --driver bridge my_bridge_network # Executar un contenidor en la xarxa bridge docker run -d --name my_container --network my_bridge_network nginx
Host Network
Permet que un contenidor comparteixi la xarxa del sistema host. Això pot millorar el rendiment, però redueix l'aïllament.
Overlay Network
Utilitzada per a serveis en un clúster Docker Swarm. Permet la comunicació entre contenidors en diferents hosts.
# Crear una xarxa overlay docker network create --driver overlay my_overlay_network # Executar un servei en la xarxa overlay docker service create --name my_service --network my_overlay_network nginx
Macvlan Network
Assigna una adreça MAC única a cada contenidor, permetent que actuïn com a dispositius físics a la xarxa.
# Crear una xarxa macvlan docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --gateway=192.168.1.1 \ -o parent=eth0 my_macvlan_network # Executar un contenidor en la xarxa macvlan docker run -d --name my_container --network my_macvlan_network nginx
Configuració avançada de xarxes
Configuració de DNS
Docker permet configurar servidors DNS personalitzats per als contenidors.
# Executar un contenidor amb un servidor DNS personalitzat docker run -d --name my_container --dns 8.8.8.8 nginx
Xarxes multi-host amb Docker Swarm
Docker Swarm permet la creació de xarxes que s'estenen per múltiples hosts.
# Iniciar un clúster Swarm docker swarm init # Crear una xarxa overlay docker network create --driver overlay my_overlay_network # Executar un servei en la xarxa overlay docker service create --name my_service --network my_overlay_network nginx
Exercicis pràctics
Exercici 1: Crear i gestionar una xarxa bridge
- Crea una xarxa bridge anomenada
my_bridge_network
. - Executa un contenidor Nginx en aquesta xarxa.
- Verifica que el contenidor està connectat a la xarxa utilitzant
docker network inspect
.
Solució
docker network create --driver bridge my_bridge_network docker run -d --name my_container --network my_bridge_network nginx docker network inspect my_bridge_network
Exercici 2: Configurar una xarxa overlay en un clúster Swarm
- Inicia un clúster Docker Swarm.
- Crea una xarxa overlay anomenada
my_overlay_network
. - Executa un servei Nginx en aquesta xarxa.
Solució
docker swarm init docker network create --driver overlay my_overlay_network docker service create --name my_service --network my_overlay_network nginx
Errors comuns i consells
- Error: "network not found": Assegura't que la xarxa existeix abans d'intentar connectar-hi un contenidor.
- Error: "address already in use": Verifica que no hi hagi conflictes d'adreces IP o ports.
- Consell: Utilitza noms descriptius per a les xarxes per facilitar la gestió i el manteniment.
Conclusió
En aquesta secció, hem explorat en profunditat les opcions de xarxa que Docker ofereix. Hem après a crear i gestionar diferents tipus de xarxes, així com a configurar xarxes avançades per a contenidors. Amb aquests coneixements, estàs preparat per optimitzar la comunicació i la seguretat dels teus contenidors en entorns de producció.
Docker: De Principiant a Avançat
Mòdul 1: Introducció a Docker
- Què és Docker?
- Instal·lant Docker
- Arquitectura de Docker
- Comandes bàsiques de Docker
- Entenent les imatges de Docker
- Creant el teu primer contenidor Docker
Mòdul 2: Treballant amb imatges Docker
- Docker Hub i Repositoris
- Construint imatges Docker
- Conceptes bàsics de Dockerfile
- Gestionant imatges Docker
- Etiquetant i pujant imatges
Mòdul 3: Contenidors Docker
- Executant contenidors
- Cicle de vida del contenidor
- Gestionant contenidors
- Xarxes a Docker
- Persistència de dades amb volums
Mòdul 4: Docker Compose
- Introducció a Docker Compose
- Definint serveis a Docker Compose
- Comandes de Docker Compose
- Aplicacions multi-contenidor
- Variables d'entorn a Docker Compose
Mòdul 5: Conceptes avançats de Docker
- Exploració profunda de xarxes Docker
- Opcions d'emmagatzematge de Docker
- Millors pràctiques de seguretat de Docker
- Optimitzant imatges Docker
- Registre i monitoratge de Docker
Mòdul 6: Docker en producció
- CI/CD amb Docker
- Orquestrant contenidors amb Docker Swarm
- Introducció a Kubernetes
- Desplegant contenidors Docker a Kubernetes
- Escalat i equilibrat de càrrega