Define la imagen base. Siempre es la primera instrucción real del
Dockerfile. Ejemplo: FROM python:3.11, FROM node:20,
FROM ubuntu:22.04.
Ejecuta un comando durante la construcción de la imagen (por
ejemplo, instalar dependencias). Cada RUN crea una nueva capa. Ejemplo:
RUN pip install -r requirements.txt.
Copia archivos desde tu máquina (contexto de build) hacia el sistema de
archivos de la imagen. Ejemplo: COPY requirements.txt . o
COPY . /app.
(ADD es similar a COPY pero además puede descomprimir archivos .tar y descargar URLs; en general se prefiere COPY salvo que necesites eso.)
Define el comando por defecto que se ejecuta cuando se arranca un
contenedor a partir de la imagen (no durante el build). Solo puede haber
un CMD efectivo por imagen. Se suele escribir en forma de lista (formato
"exec"): CMD ["python", "app.py"].
Diferencia clave: RUN se ejecuta al construir la imagen; CMD se ejecuta al arrancar el contenedor.
WORKDIR /ruta: fija el directorio de trabajo para las
siguientes instrucciones.ENV NOMBRE=valor: define una variable de entorno.EXPOSE puerto: documenta qué puerto usa la app dentro del
contenedor (no lo publica solo, eso lo hace docker run -p).