Below is a simple workflow for using Docker commands in a typical project:
docker build -t <image-name> .docker imagesdocker run -d -p <host-port>:<container-port> --name <container-name> <image-name>docker psdocker stop <container-name>docker rm <container-name>docker rmi <image-name>- El usuario interactúa con la Docker CLI (por ejemplo, con el comando docker pull ubuntu).
- La CLI envía la solicitud al Docker Daemon a través de la API REST.
- El Docker Daemon recibe la solicitud y la procesa. En este caso, se conecta a Docker Hub para descargar la imagen de Ubuntu.
- Una vez descargada la imagen, el daemon la almacena localmente y está lista para ser utilizada para crear un contenedor.
- Para ver todos los contenedores en ejecución:
docker ps - para ver todos los contenedores (en ejecucion y detenidos)
docker ps -a - Cuando ejecutas
dockerstop seguido del ID o nombre de un contenedor, el Docker Daemon localiza ese contenedor:docker stop mi-contenedor-webdocker stop a3f5b7c
- El comando
docker rmse usa para eliminar uno o más contenedores que ya no están en uso. Un contenedor debe estar detenido para poder ser eliminado. Si intentas eliminar un contenedor:docker rm mi-contenedor-webdocker rm -f mi-contenedor-webdocker container prunePara eliminar todos los contenedores detenidos:
docker pullse usa para descargar una imagen desde un registro de contenedores como Docker Hub:docker pull ubuntu o docker pull ubuntu:20.04
docker runes el comando más importante. Se usa para crear y arrancar un nuevo contenedor a partir de una imagen, ejemplos:
docker run -it ubuntu /bin/bash--> (-it para modo interactivo)docker run -d -p 8080:80 nginx--> Para ejecutar un servidor web Nginx y mapear el puerto 80 del contenedor al puerto 8080 del host (-p):
docker imagesse usa para listar las imágenes que tienes descargadas localmente en tu máquina.
- docker images
docker rmi(remove image) se usa para eliminar una imagen. Solo puedes eliminar una imagen si no hay contenedores que la estén usando.
docker rmi ubuntu
| Instrucción | Definición | Ejemplo |
|---|---|---|
| FROM | Define la imagen base. | FROM python:3.11-slim |
| WORKDIR | Establece el directorio de trabajo dentro del contenedor. | WORKDIR /app |
| COPY | Copia archivos desde tu máquina al contenedor. | COPY . . |
| RUN | Ejecuta comandos en la construcción de la imagen. | RUN pip install flask |
| EXPOSE | Expone un puerto que usará el contenedor. | EXPOSE 5000 |
| CMD | Define el comando por defecto al ejecutar el contenedor. | CMD ["python", "app.py"] |
| ENTRYPOINT | Similar a CMD, pero fija un comando principal. |
ENTRYPOINT ["python"] |
| ENV | Define variables de entorno. | ENV DEBUG=true |
| ARG | Define variables en tiempo de build. | ARG VERSION=1.0 |
| .dockerignore (archivo externo) | Excluye archivos al copiar al contenedor. | .venv/, node_modules/ |
- docker build -t mi_app_flask . --> construccion
- docker run -p 5000:5000 mi_app_flask --> ejecuccion
- Dockerfile = receta para construir imágenes.
- Consta de instrucciones declarativas (FROM, RUN, COPY, CMD, etc).
- Permite automatizar el despliegue y garantizar que tu app siempre se construya igual.