docker build -t <image_tag> .: Construye una imagen desde un archivoDockerfileen la carpeta actualdocker run <image_tag>: Ejecuta la imagen en un contenedor Flags:-e PORT=3001: Configura la variable de entornoPORTal valor3001--init: Arranca el contenedor con un mini sitema de inicio-it: Modo interactivo. Permitestdin
docker ps: Ver todos los contenedores docker corriendo en el sistemadocker kill <container_id>: Mata un contendor dockerdocker images: Ver todas las imagenes docker descargadas
- Stop all containers:
docker kill $(docker ps -q) - Remove all containers:
docker rm $(docker ps -a -q) - Remove all docker images:
docker rmi $(docker images -q)
✅ Crear el archivo .dockerignore y poner alli los node_modules
Arrancar con node permite capturar las señales SIGTERM y SIGINT
✅ CMD [ "node", "server.js" ]
No arrancar el servidor con, npm capturará SIGTERM y SIGINT:
❌ CMD [ "npm", "start" ]
Arrancar el contenedor docker con la variable de entorno NODE_ENV configurada
✅ -e "NODE_ENV=production"
Arrancar el contenedor con los flags --init -it:
✅ docker run --init -it demo_image
Flags para docker run que configuran el maximo de memoria RAM usada por el contenedor:
✅ -m "300M" --memory-swap "1G"
node:alpineUsa una distro mas ligera [https://alpinelinux.org/]node:latestUsa por defecto debian stretch [https://www.debian.org/releases/stretch/]