Docker és una de les eines que, quan l'aprens a fer servir bé, no entens com has pogut viure sense ella. Contenidors que s'arrenquen en segons, entorns aïllats i reproduïbles, serveis que funcionen igual al Mac que al servidor Linux. Però el nombre de comandes pot aclaparar al principi. Aquesta guia és el full de referència que m'agradaria haver tingut des del primer dia.
Conceptes clau en trenta segons
Abans de les comandes, tres conceptes que cal tenir clars:
- Imatge: la "recepta" del contenidor. Immutable, descarregable del Docker Hub.
- Contenidor: la imatge en execució. Efímer per defecte — si l'esborres, les dades desapareixen.
- Volum: la forma de persistir dades fora del contenidor.
Contenidors — comandes del dia a dia
Llista tots els contenidors en execució. Amb -a veus també els aturats:
docker ps
docker ps -a
Arrencar, aturar i reiniciar un contenidor:
docker start nom_o_id
docker stop nom_o_id
docker restart nom_o_id
Executar un contenidor nou a partir d'una imatge. Les opcions més habituals:
# -d → mode segon pla (detached)
# -p → mapeja port host:contenidor
# --name → nom personalitzat
# -v → volum o carpeta local:ruta_contenidor
docker run -d \
--name el_meu_servei \
-p 8080:80 \
-v /data/fitxers:/app/data \
nom_imatge:tag
Veure els logs d'un contenidor en temps real:
docker logs -f nom_o_id
Entrar dins d'un contenidor en execució (molt útil per depurar):
docker exec -it nom_o_id bash
# Si no té bash, prova amb sh:
docker exec -it nom_o_id sh
Esborrar un contenidor aturat. Amb -f el força tot i que estigui en execució:
docker rm nom_o_id
docker rm -f nom_o_id
Imatges
Descarregar una imatge del Docker Hub, llistar les locals i esborrar-ne una:
docker pull nginx:latest
docker images
docker rmi nom_imatge:tag
Construir una imatge a partir d'un Dockerfile a la carpeta actual:
docker build -t nom_imatge:tag .
Volums i xarxes
Gestió bàsica de volums Docker (la forma recomanada de persistir dades):
docker volume ls
docker volume create nom_volum
docker volume inspect nom_volum
docker volume rm nom_volum
Llistar les xarxes i inspectar-ne una per veure quins contenidors hi estan connectats:
docker network ls
docker network inspect nom_xarxa
Neteja del sistema
Amb el temps s'acumulen imatges, contenidors aturats i volums orfes. Aquestes comandes recuperen espai:
# Esborra tot el que no s'usa (contenidors aturats,
# imatges sense referència, xarxes i cache de build)
docker system prune
# Inclou també els volums (⚠️ compte amb les dades!)
docker system prune --volumes
# Quant espai ocupa Docker
docker system df
Docker Compose — gestió de serveis múltiples
Docker Compose és l'eina per definir i orquestrar diversos contenidors amb un sol fitxer docker-compose.yml. En lloc de recordar deu docker run llargs, escrius la configuració una vegada i ja.
Les comandes s'executen sempre a la carpeta on és el fitxer docker-compose.yml:
# Arrencar tots els serveis en segon pla
docker compose up -d
# Aturar tots els serveis (sense esborrar-los)
docker compose stop
# Aturar i esborrar contenidors i xarxes
docker compose down
# Esborrar-ho tot, incloent volums (⚠️ dades!)
docker compose down -v
Veure l'estat dels serveis i els seus logs:
docker compose ps
docker compose logs -f
docker compose logs -f nom_servei
Reconstruir les imatges i reiniciar (imprescindible quan canvies el docker-compose.yml o el Dockerfile):
docker compose up -d --build
docker compose pull && docker compose up -d
Executar una comanda dins d'un servei concret (equivalent a docker exec):
docker compose exec nom_servei bash
Exemple mínim de docker-compose.yml
Per tenir una referència ràpida, aquí un exemple funcional amb Nginx i un volum:
services:
web:
image: nginx:alpine
container_name: web_nginx
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
volumes:
html:
Amb restart: unless-stopped, el contenidor s'arrenca sol si el servidor es reinicia — imprescindible en producció.
Resum ràpid
Les comandes que faig servir el 90% del temps:
docker ps -a— veure tots els contenidors.docker logs -f— seguir logs en temps real.docker exec -it ... bash— entrar al contenidor.docker compose up -d— arrencar l'stack.docker compose down— aturar l'stack.docker system prune— netejar espai.
Més informació
La documentació oficial és excel·lent i té exemples per a cada comanda: docs.docker.com. Per a Docker Compose específicament: docs.docker.com/compose.