Comandos Clave - 352.3 Docker

Gestión de Imágenes

ComandoDescripción
docker build -t <nombre>:<tag> .Construir imagen desde Dockerfile
docker build -f Dockerfile.prod -t app:v1 .Construir con Dockerfile específico
docker images / docker image lsListar imágenes locales
docker pull <imagen>:<tag>Descargar imagen del registry
docker push <imagen>:<tag>Subir imagen al registry
docker tag <imagen> <nuevo-nombre>:<tag>Etiquetar imagen
docker rmi <imagen>Eliminar imagen
docker history <imagen>Ver capas/historial de la imagen
docker inspect <imagen>Inspeccionar metadatos de imagen
docker image pruneEliminar imágenes sin referencia

Gestión de Contenedores

ComandoDescripción
docker run -d --name X -p 8080:80 nginxEjecutar contenedor en background
docker run -it --rm ubuntu bashEjecutar interactivo, eliminar al salir
docker psListar contenedores activos
docker ps -aListar todos los contenedores
docker stop <contenedor>Detener contenedor
docker start <contenedor>Iniciar contenedor detenido
docker restart <contenedor>Reiniciar contenedor
docker rm <contenedor>Eliminar contenedor
docker rm -f <contenedor>Forzar eliminación
docker logs <contenedor>Ver logs
docker logs -f --tail 100 <contenedor>Seguir últimas 100 líneas
docker exec -it <contenedor> bashShell en contenedor activo
docker inspect <contenedor>Inspeccionar contenedor
docker cp <archivo> <cont>:<ruta>Copiar archivo al contenedor
docker cp <cont>:<ruta> <local>Copiar archivo del contenedor
docker commit <cont> <imagen>:<tag>Crear imagen desde contenedor
docker statsEstadísticas en tiempo real

Redes

ComandoDescripción
docker network lsListar redes
docker network create <red>Crear red bridge
docker network create --subnet X <red>Crear red con subnet
docker network inspect <red>Inspeccionar red
docker network connect <red> <cont>Conectar contenedor a red
docker network disconnect <red> <cont>Desconectar de red
docker network rm <red>Eliminar red
docker network pruneEliminar redes no usadas

Volúmenes

ComandoDescripción
docker volume create <vol>Crear volumen
docker volume lsListar volúmenes
docker volume inspect <vol>Inspeccionar volumen
docker volume rm <vol>Eliminar volumen
docker volume pruneEliminar volúmenes no usados
-v <vol>:/rutaMontar volumen en contenedor
-v /host:/cont:roBind mount solo lectura

Docker Compose

ComandoDescripción
docker compose up -dLevantar servicios en background
docker compose downDetener y eliminar servicios
docker compose down -vDetener, eliminar servicios y volúmenes
docker compose psEstado de servicios
docker compose logs -fLogs de todos los servicios
docker compose buildReconstruir imágenes
docker compose up -d --scale web=3Escalar servicio
docker compose exec <servicio> bashShell en servicio
docker compose pullDescargar imágenes actualizadas

Limpieza

ComandoDescripción
docker system pruneLimpiar recursos no usados
docker system prune --volumesLimpiar incluyendo volúmenes
docker system dfVer uso de disco
docker image prune -aEliminar todas las imágenes no usadas
docker container pruneEliminar contenedores detenidos

Instrucciones Dockerfile

InstrucciónDescripción
FROM <imagen>Imagen base
RUN <comando>Ejecutar comando durante build
COPY <origen> <destino>Copiar archivos del contexto
ADD <origen> <destino>Copiar + descomprimir tar + URLs
CMD ["exec", "arg"]Comando por defecto
ENTRYPOINT ["exec"]Ejecutable principal
ENV VAR=valorVariable de entorno
ARG VAR=valorVariable de build
EXPOSE <puerto>Documentar puertos
VOLUME ["/data"]Definir punto de montaje
WORKDIR /rutaDirectorio de trabajo
USER <usuario>Usuario de ejecución
HEALTHCHECK CMD <cmd>Verificación de salud
LABEL clave="valor"Metadatos

Archivos Importantes

RutaDescripción
DockerfileDefinición de imagen
.dockerignoreExclusiones del contexto de build
docker-compose.ymlDefinición multi-contenedor
/etc/docker/daemon.jsonConfiguración del daemon
/var/lib/docker/Datos de Docker (imágenes, contenedores)
/var/run/docker.sockSocket Unix del daemon