En aquest tema, explorarem les diferents opcions d'emmagatzematge que ofereix Docker per gestionar les dades dels contenidors. L'emmagatzematge és un aspecte crucial per garantir la persistència de les dades i la seva accessibilitat, fins i tot després de reiniciar o eliminar els contenidors.
Objectius d'aprenentatge
- Entendre els diferents tipus d'emmagatzematge en Docker.
- Aprendre a crear i gestionar volums.
- Conèixer les diferències entre volums, bind mounts i tmpfs mounts.
- Implementar les millors pràctiques per a l'emmagatzematge de dades en Docker.
Tipus d'emmagatzematge en Docker
Docker ofereix tres tipus principals d'emmagatzematge:
- Volums (Volumes)
- Bind Mounts
- Tmpfs Mounts
- Volums (Volumes)
Els volums són la forma recomanada d'emmagatzematge en Docker. Són gestionats per Docker i es poden crear, llistar i eliminar utilitzant les comandes de Docker.
Característiques dels volums:
- Són independents del cicle de vida dels contenidors.
- Es poden compartir entre múltiples contenidors.
- Són gestionats per Docker, el que facilita la seva administració.
Crear un volum:
Llistar volums:
Utilitzar un volum en un contenidor:
Eliminar un volum:
- Bind Mounts
Els bind mounts permeten muntar un directori o fitxer del sistema de fitxers de l'amfitrió dins d'un contenidor. A diferència dels volums, els bind mounts no són gestionats per Docker.
Característiques dels bind mounts:
- Permeten accedir directament a fitxers i directoris de l'amfitrió.
- Són útils per a desenvolupament, ja que permeten veure els canvis en temps real.
- No són tan segurs ni flexibles com els volums.
Utilitzar un bind mount en un contenidor:
- Tmpfs Mounts
Els tmpfs mounts emmagatzemen dades en la memòria volàtil de l'amfitrió. Són útils per a dades temporals que no necessiten persistència.
Característiques dels tmpfs mounts:
- Les dades es perden quan el contenidor es reinicia o s'atura.
- Són molt ràpids, ja que utilitzen la memòria RAM.
Utilitzar un tmpfs mount en un contenidor:
Comparació d'opcions d'emmagatzematge
Tipus d'emmagatzematge | Persistència | Gestió | Ús recomanat |
---|---|---|---|
Volums | Sí | Docker | Dades persistents, compartició entre contenidors |
Bind Mounts | Sí | Amfitrió | Desenvolupament, accés directe a fitxers de l'amfitrió |
Tmpfs Mounts | No | Amfitrió | Dades temporals, alta velocitat |
Exercicis pràctics
Exercici 1: Crear i utilitzar un volum
- Crea un volum anomenat
data_volume
. - Executa un contenidor
busybox
que utilitzi aquest volum per emmagatzemar dades en el directori/data
. - Crea un fitxer dins del contenidor i comprova que el fitxer es manté després de reiniciar el contenidor.
Solució:
# Crear el volum docker volume create data_volume # Executar el contenidor amb el volum docker run -d --name my_busybox -v data_volume:/data busybox # Crear un fitxer dins del contenidor docker exec my_busybox sh -c "echo 'Hello, Docker!' > /data/hello.txt" # Reiniciar el contenidor docker restart my_busybox # Comprovar que el fitxer encara existeix docker exec my_busybox cat /data/hello.txt
Exercici 2: Utilitzar un bind mount
- Crea un directori en el teu sistema d'amfitrió anomenat
host_data
. - Executa un contenidor
busybox
que utilitzi aquest directori com a bind mount en el directori/data
del contenidor. - Crea un fitxer dins del contenidor i comprova que el fitxer apareix en el directori de l'amfitrió.
Solució:
# Crear el directori en l'amfitrió mkdir /path/to/host_data # Executar el contenidor amb el bind mount docker run -d --name my_busybox -v /path/to/host_data:/data busybox # Crear un fitxer dins del contenidor docker exec my_busybox sh -c "echo 'Hello, Host!' > /data/hello.txt" # Comprovar que el fitxer existeix en l'amfitrió cat /path/to/host_data/hello.txt
Resum
En aquesta secció, hem après sobre les diferents opcions d'emmagatzematge que ofereix Docker: volums, bind mounts i tmpfs mounts. Hem vist com crear i gestionar volums, així com les diferències i usos recomanats per a cada tipus d'emmagatzematge. A més, hem realitzat exercicis pràctics per reforçar els conceptes apresos. En la següent secció, explorarem les millors pràctiques de seguretat en 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