Introducció

En aquest tema, explorarem com Docker gestiona les xarxes i com pots utilitzar les seves funcionalitats per connectar contenidors entre ells i amb el món exterior. La comprensió de les xarxes a Docker és essencial per construir aplicacions distribuïdes i assegurar que els teus contenidors puguin comunicar-se de manera eficient i segura.

Conceptes Clau

Tipus de Xarxes a Docker

Docker proporciona diversos tipus de xarxes que pots utilitzar segons les teves necessitats:

  1. Bridge (Pont):

    • És el tipus de xarxa per defecte quan crees un contenidor.
    • Permet que els contenidors en la mateixa xarxa es comuniquin entre ells.
    • Els contenidors en una xarxa bridge poden accedir a Internet, però no són accessibles des de fora de la màquina host.
  2. Host:

    • El contenidor comparteix la pila de xarxa de l'host.
    • No hi ha aïllament de xarxa entre el contenidor i l'host.
    • Pot ser útil per a aplicacions que necessiten un alt rendiment de xarxa.
  3. None:

    • El contenidor no té cap interfície de xarxa.
    • Pot ser útil per a contenidors que no necessiten cap connexió de xarxa.
  4. Overlay:

    • Permet la comunicació entre contenidors en diferents màquines host.
    • Utilitzat principalment en entorns de clúster com Docker Swarm.
  5. Macvlan:

    • Assigna una adreça MAC a cada contenidor, fent que apareguin com a dispositius físics a la xarxa.
    • Pot ser útil per a aplicacions que necessiten estar en la mateixa xarxa física que altres dispositius.

Comandes bàsiques de xarxes a Docker

  • Llistar xarxes:

    docker network ls
    
  • Crear una xarxa:

    docker network create my_network
    
  • Connectar un contenidor a una xarxa:

    docker network connect my_network my_container
    
  • Desconnectar un contenidor d'una xarxa:

    docker network disconnect my_network my_container
    
  • Inspeccionar una xarxa:

    docker network inspect my_network
    

Exemple Pràctic

Creant i utilitzant una xarxa bridge

  1. Crear una xarxa bridge:

    docker network create my_bridge_network
    
  2. Crear dos contenidors i connectar-los a la xarxa:

    docker run -d --name container1 --network my_bridge_network nginx
    docker run -d --name container2 --network my_bridge_network nginx
    
  3. Verificar la connectivitat entre els contenidors:

    • Accedeix al contenidor1:
      docker exec -it container1 /bin/bash
      
    • Instal·la ping si no està disponible (per a distribucions basades en Debian):
      apt-get update && apt-get install -y iputils-ping
      
    • Fes un ping a container2:
      ping container2
      

Utilitzant una xarxa host

  1. Crear un contenidor amb la xarxa host:

    docker run -d --name host_container --network host nginx
    
  2. Verificar que el contenidor està utilitzant la xarxa de l'host:

    • Accedeix al contenidor:
      docker exec -it host_container /bin/bash
      
    • Comprova les interfícies de xarxa:
      ifconfig
      

Exercicis Pràctics

Exercici 1: Crear i gestionar una xarxa bridge

  1. Crea una xarxa bridge anomenada test_bridge.
  2. Crea dos contenidors web1 i web2 utilitzant la imatge nginx i connecta'ls a test_bridge.
  3. Verifica que web1 pot fer ping a web2.

Solució

  1. Crear la xarxa:

    docker network create test_bridge
    
  2. Crear els contenidors:

    docker run -d --name web1 --network test_bridge nginx
    docker run -d --name web2 --network test_bridge nginx
    
  3. Verificar la connectivitat:

    docker exec -it web1 /bin/bash
    apt-get update && apt-get install -y iputils-ping
    ping web2
    

Exercici 2: Utilitzar la xarxa host

  1. Crea un contenidor host_nginx utilitzant la xarxa host.
  2. Verifica que el contenidor està utilitzant la xarxa de l'host.

Solució

  1. Crear el contenidor:

    docker run -d --name host_nginx --network host nginx
    
  2. Verificar la xarxa:

    docker exec -it host_nginx /bin/bash
    ifconfig
    

Conclusió

En aquesta secció, hem après sobre els diferents tipus de xarxes que Docker ofereix i com utilitzar-los per connectar els teus contenidors. Hem vist exemples pràctics de com crear i gestionar xarxes, així com exercicis per reforçar els conceptes apresos. Amb aquest coneixement, estàs preparat per construir aplicacions més complexes i distribuïdes utilitzant Docker.

© Copyright 2024. Tots els drets reservats