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.

# Executar un contenidor amb la xarxa host
docker run -d --name my_container --network host nginx

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

  1. Crea una xarxa bridge anomenada my_bridge_network.
  2. Executa un contenidor Nginx en aquesta xarxa.
  3. 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

  1. Inicia un clúster Docker Swarm.
  2. Crea una xarxa overlay anomenada my_overlay_network.
  3. 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ó.

© Copyright 2024. Tots els drets reservats