Docker es una plataforma que permite crear, desplegar y ejecutar aplicaciones dentro de contenedores, proporcionando un entorno aislado y consistente.
Instalación de Docker
Instalar Docker en Windows
Descarga Docker Desktop desde el sitio oficial.
Instalar Docker en Linux
Para Ubuntu, puedes usar los siguientes comandos:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable dockerComprobar la versión de Docker
Verifica si Docker está instalado y muestra la versión actual.
docker --versionImágenes de Docker
Listar imágenes locales
Muestra todas las imágenes descargadas en el sistema local.
docker imagesDescargar una imagen
Descarga una imagen desde Docker Hub.
docker pull nombre_imagenEliminar una imagen
Elimina una imagen específica del sistema local.
docker rmi nombre_imagenBuscar una imagen
Busca una imagen en Docker Hub desde la terminal.
docker search nombre_imagenConstruir una imagen desde un Dockerfile
Crea una nueva imagen a partir de un archivo Dockerfile.
docker build -t nombre_imagen:etiqueta .Ver el historial de una imagen
Muestra las capas de una imagen y cómo fue construida.
docker history nombre_imagenEtiquetar una imagen
Añade una etiqueta a una imagen para referenciarla más fácilmente.
docker tag id_imagen nombre_imagen:etiquetaContenedores
Crear y ejecutar un contenedor
Ejecuta un contenedor a partir de una imagen especificada.
docker run nombre_imagenEjecutar un contenedor en segundo plano (detached mode)
Ejecuta un contenedor en segundo plano, útil para aplicaciones de larga duración.
docker run -d nombre_imagenAsignar nombre a un contenedor
Especifica un nombre personalizado para el contenedor en el momento de su creación.
docker run --name mi_contenedor nombre_imagenVer contenedores en ejecución
Lista todos los contenedores que están actualmente ejecutándose.
docker psVer todos los contenedores
Lista todos los contenedores, tanto en ejecución como detenidos.
docker ps -aDetener un contenedor
Detiene la ejecución de un contenedor.
docker stop id_contenedorIniciar un contenedor detenido
Inicia un contenedor previamente detenido.
docker start id_contenedorEliminar un contenedor
Elimina un contenedor que ha sido detenido.
docker rm id_contenedorEliminar todos los contenedores detenidos
Elimina todos los contenedores que han sido detenidos.
docker rm $(docker ps -a -q)Interacción con contenedores
Acceder a un contenedor en ejecución
Abre una terminal interactiva dentro de un contenedor en ejecución.
docker exec -it id_contenedor /bin/bashReiniciar un contenedor
docker restart id_contenedorMostrar logs de un contenedor
Muestra los registros de salida de un contenedor.
docker logs id_contenedorCopiar archivos desde/hacia un contenedor
Copia archivos desde el sistema host al contenedor o viceversa.
docker cp ruta_host id_contenedor:/ruta_contenedorDetener todos los contenedores en ejecución
Detiene todos los contenedores que están activos.
docker stop $(docker ps -q)Dockerfile
Un Dockerfile es un archivo de texto que contiene todas las instrucciones para construir una imagen de Docker.
Crear un Dockerfile
Un archivo Dockerfile define el entorno de ejecución de una aplicación dentro de un contenedor.
FROM: Define la imagen base.RUN: Ejecuta comandos en la construcción de la imagen.COPY: Copia archivos del host al contenedor.WORKDIR: Establece el directorio de trabajo.CMD: Especifica el comando que se ejecutará cuando el contenedor se inicie.
# Usar una imagen base
FROM ubuntu:20.04
# Instalar dependencias
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
# Copiar archivos al contenedor
COPY . /app
# Establecer el directorio de trabajo
WORKDIR /app
# Comando por defecto
CMD ["python3", "app.py"]Construir imagen a partir de un Dockerfile
Crea una imagen a partir de un Dockerfile.
docker build -t nombre_imagen .Ignorar archivos con .dockerignore
Define los archivos que no deben ser copiados en la imagen Docker.
node_modules
.git
.envRedes en Docker
Crear una nueva red
Crea una red personalizada.
docker network create nombre_redListar redes de Docker
Muestra todas las redes creadas en Docker.
docker network lsEjecutar un contenedor en una red específica
docker run -d --name nombre-contenedor --network nombre-red nombre-imagenConectar un contenedor a una red
Conecta un contenedor a una red específica.
docker network connect nombre_red id_contenedorDesconectar un contenedor de una red
Desconecta un contenedor de una red.
docker network disconnect nombre_red id_contenedorEliminar una red
Elimina una red creada previamente.
docker network rm nombre_redVolúmenes en Docker
Crear un volumen
Crea un volumen persistente que puede ser compartido entre contenedores.
docker volume create nombre_volumenMontar un volumen en un contenedor
Monta un volumen en un contenedor para almacenar datos persistentes.
docker run -d --name mi_contenedor -v nombre_volumen:/ruta_dentro_contenedor nombre_imagenListar volúmenes existentes
Muestra todos los volúmenes creados en el sistema.
docker volume lsEliminar un volumen
Elimina un volumen de Docker.
docker volume rm nombre_volumenDocker Compose
Docker Compose es una herramienta que permite definir y ejecutar aplicaciones Docker de múltiples contenedores.
Ejemplo básico de docker-compose.yml
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: ejemploIniciar servicios definidos en docker-compose.yml
Inicia los servicios definidos en el archivo docker-compose.yml.
docker-compose upIniciar servicios en segundo plano (detached mode)
Inicia los servicios en segundo plano.
docker-compose up -dDetener todos los servicios
Detiene la ejecución de todos los servicios definidos.
docker-compose downVer logs de servicios
Muestra los logs de todos los servicios en ejecución.
docker-compose logsEscalar servicios
Aumenta el número de instancias de un servicio.
docker-compose up --scale servicio=numeroOptimización y Limpieza
Limpiar recursos
Eliminar contenedores detenidos, imágenes no utilizadas y volúmenes sin usar
Limpia automáticamente recursos no utilizados.
docker system pruneEliminar todas las imágenes no usadas
Elimina todas las imágenes que no están en uso por ningún contenedor.
docker image prune -aEliminar volúmenes no usados
Elimina todos los volúmenes que no están en uso.
docker volume pruneMonitorización
Ver el uso de recursos de un contenedor
Muestra el uso de CPU, memoria y otros recursos de un contenedor en tiempo real.
docker stats id_contenedorVer los detalles del sistema Docker
Proporciona información sobre el estado de Docker, como recursos y uso del sistema.
docker infoDocker Swarm
Docker Swarm es una herramienta para crear y gestionar clusters de Docker.
Iniciar un Swarm
docker swarm initCrear un Servicio
docker service create --name mi-servicio nombre-imagenEscalar un Servicio
docker service scale mi-servicio=5Detener un Swarm
docker swarm leave --force