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:
-
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.
-
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.
-
None:
- El contenidor no té cap interfície de xarxa.
- Pot ser útil per a contenidors que no necessiten cap connexió de xarxa.
-
Overlay:
- Permet la comunicació entre contenidors en diferents màquines host.
- Utilitzat principalment en entorns de clúster com Docker Swarm.
-
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
-
Crear una xarxa bridge:
docker network create my_bridge_network
-
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
-
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
- Accedeix al contenidor1:
Utilitzant una xarxa host
-
Crear un contenidor amb la xarxa host:
docker run -d --name host_container --network host nginx
-
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
- Accedeix al contenidor:
Exercicis Pràctics
Exercici 1: Crear i gestionar una xarxa bridge
- Crea una xarxa bridge anomenada
test_bridge
. - Crea dos contenidors
web1
iweb2
utilitzant la imatgenginx
i connecta'ls atest_bridge
. - Verifica que
web1
pot fer ping aweb2
.
Solució
-
Crear la xarxa:
docker network create test_bridge
-
Crear els contenidors:
docker run -d --name web1 --network test_bridge nginx docker run -d --name web2 --network test_bridge nginx
-
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
- Crea un contenidor
host_nginx
utilitzant la xarxa host. - Verifica que el contenidor està utilitzant la xarxa de l'host.
Solució
-
Crear el contenidor:
docker run -d --name host_nginx --network host nginx
-
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.
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