Contenedores desde 0.
Una imagen es una plantilla de solo lectura: sistema de archivos + dependencias + comando de arranque. Un contenedor es una instancia de esa imagen corriendo como proceso aislado.
Se construye una sola vez con docker build. Es estática: si cambia el código, hay que reconstruirla.
Se crea con docker run. Vive mientras el proceso principal esté activo; al salir, se detiene.
Conecta una carpeta del host con una del contenedor. Los cambios se ven en ambos lados sin reconstruir la imagen.
Expone un puerto interno del contenedor hacia el host, para poder acceder desde el navegador o Postman.
Lee el Dockerfile del directorio actual y arma la imagen paso a paso, capa sobre capa, cacheando lo que no cambió.
ldp../Dockerfile ahí).Descarga (si hace falta) y ejecuta alpine, una distro Linux de ~5 MB, abriendo una terminal interactiva adentro.
alpine:latest.CMD por defecto de la imagen: abre bash en vez del entrypoint original.Mismo patrón que antes, pero ahora el contenedor ve nuestro código y expone un puerto hacia afuera.
.) en /api dentro del contenedor. Editar un archivo local lo edita también ahí adentro, en vivo.host:contenedor. Lo que el servidor levante en el puerto 8000 del contenedor queda accesible en localhost:8000.A diferencia de run, no crea un contenedor nuevo: abre una terminal dentro de uno que ya está corriendo. Sirve para revisar logs, archivos o probar algo sin bajar el servicio.
run: abre una sesión interactiva con terminal asignada.docker ps./api. Los pasos siguientes corren desde ahí.docker build -t ldp ..db y después api — no espera a que Postgres esté listo, solo a que arranque.Se levanta todo junto con docker compose up -d, y ambos servicios comparten una red donde api puede llegar a la base como db:5432. El -d lo deja corriendo en segundo plano, sin ocupar la terminal.
| Comando | Qué hace |
|---|---|
| docker build -t nombre . | Construye una imagen desde el Dockerfile del directorio actual. |
| docker run -it imagen | Crea y corre un contenedor nuevo en modo interactivo. |
| docker run -v host:cont | Monta una carpeta del host dentro del contenedor. |
| docker run -p host:cont | Expone un puerto del contenedor hacia el host. |
| docker exec -it cont bash | Abre una terminal dentro de un contenedor que ya está corriendo. |
| docker ps | Lista los contenedores corriendo. |
| docker compose up -d | Construye (si hace falta) y levanta todos los servicios del compose en segundo plano. |
| docker compose down | Detiene y elimina los contenedores del compose (los volúmenes nombrados quedan). |
-v para código que cambia; COPY en el Dockerfile para lo que va fijo en la imagen.docker run largos por un archivo declarativo y reproducible.Algunos más que aparecen seguido junto a docker run.
| Comando | Qué hace |
|---|---|
| docker run -d imagen | Corre el contenedor en segundo plano (modo detached), sin bloquear la terminal. |
| docker run --rm imagen | Elimina el contenedor automáticamente al terminar; útil para pruebas rápidas. |
| docker run --name api imagen | Asigna un nombre fijo al contenedor en vez de uno generado al azar. |
| docker run -e VAR=valor imagen | Define una variable de entorno dentro del contenedor. |
| docker network create red | Crea una red para que varios contenedores se encuentren entre sí por nombre. |
| docker run --network red imagen | Conecta el contenedor a una red existente. |