En aquest tema, aprendrem com gestionar la persistència de dades en contenidors Docker utilitzant volums. La persistència de dades és crucial per assegurar que les dades no es perdin quan un contenidor es reinicia o s'elimina.

Què són els volums de Docker?

Els volums de Docker són mecanismes d'emmagatzematge que permeten als contenidors emmagatzemar dades de manera persistent. A diferència dels fitxers dins del sistema de fitxers del contenidor, els volums no es perden quan el contenidor es reinicia o s'elimina.

Tipus de volums

  1. Volums anomenats (Named Volumes):

    • Són volums que tenen un nom específic i poden ser reutilitzats per diferents contenidors.
    • Exemple: my_volume
  2. Volums anònims (Anonymous Volumes):

    • Són volums que no tenen un nom específic i són creats per Docker automàticament.
    • Exemple: docker run -v /data busybox
  3. Volums host (Bind Mounts):

    • Són volums que mapejen un directori del sistema de fitxers de l'amfitrió a un directori dins del contenidor.
    • Exemple: /path/on/host:/path/in/container

Creant i utilitzant volums

Creant un volum

docker volume create my_volume

Llistant volums

docker volume ls

Inspeccionant un volum

docker volume inspect my_volume

Utilitzant un volum en un contenidor

docker run -d --name my_container -v my_volume:/data busybox

En aquest exemple, el volum my_volume es monta al directori /data dins del contenidor my_container.

Exemple pràctic

Pas 1: Crear un volum

docker volume create my_data_volume

Pas 2: Executar un contenidor amb el volum

docker run -d --name my_data_container -v my_data_volume:/data busybox

Pas 3: Escriure dades al volum

docker exec my_data_container sh -c "echo 'Hello, Docker!' > /data/hello.txt"

Pas 4: Verificar les dades

docker exec my_data_container cat /data/hello.txt

Pas 5: Eliminar el contenidor i crear-ne un de nou

docker rm -f my_data_container
docker run -d --name new_data_container -v my_data_volume:/data busybox

Pas 6: Verificar que les dades persisteixen

docker exec new_data_container cat /data/hello.txt

Exercicis pràctics

Exercici 1: Crear i utilitzar un volum anomenat

  1. Crea un volum anomenat test_volume.
  2. Executa un contenidor nginx utilitzant aquest volum, muntant-lo a /usr/share/nginx/html.
  3. Crea un fitxer index.html dins del volum amb el contingut "Hello, World!".
  4. Verifica que el fitxer es pot accedir a través del navegador.

Solució

docker volume create test_volume
docker run -d --name test_nginx -v test_volume:/usr/share/nginx/html -p 8080:80 nginx
docker exec test_nginx sh -c "echo 'Hello, World!' > /usr/share/nginx/html/index.html"
# Accedeix a http://localhost:8080 per veure el contingut

Exercici 2: Utilitzar un volum host

  1. Crea un directori a l'amfitrió, per exemple /tmp/host_data.
  2. Executa un contenidor busybox muntant aquest directori a /data.
  3. Escriu un fitxer dins del directori muntat des del contenidor.
  4. Verifica que el fitxer existeix al directori de l'amfitrió.

Solució

mkdir -p /tmp/host_data
docker run -d --name host_data_container -v /tmp/host_data:/data busybox
docker exec host_data_container sh -c "echo 'Persistent Data' > /data/persistent.txt"
cat /tmp/host_data/persistent.txt

Resum

En aquesta secció, hem après sobre la persistència de dades en Docker utilitzant volums. Hem vist com crear, gestionar i utilitzar volums per assegurar que les dades es mantinguin fins i tot quan els contenidors es reinicien o s'eliminen. Els volums són una eina poderosa per gestionar dades persistents en entorns de contenidors.

© Copyright 2024. Tots els drets reservats