Docker
Instalación
Arch Linux
- Opcional. Actualizar sistema
sudo pacman -Syu
- Instalar Docker
sudo pacman -S docker #docker-compose
- Administrar servicio
sudo systemctl start docker # Iniciar
sudo systemctl enable docker # Iniciar automaticamente con el OS
# Opcional
sudo systemctl status docker # Verificar estado
sudo systemctl restart docker # Reiniciar servicio
- Opcional. Añadir usuario al grupo docker (para evitar usar
sudoen cada comando)
# Agregar usuario al grupo docker
sudo usermod -aG docker $USER
# Reiniciar sesion o usar:
newgrp docker
Windows con Docker Desktop
- Habilitar WSL e instalar distribución
wsl --install
wsl --install Debian
wsl -l # Distribuciones instaladas
wsl --list --online # Distribuciones disponibles
- Ingresar al nuevo sistema para configurar nombre y contraseña del nuevo usuario
- Actualizar el sistema,
sudo apt update && sudo apt upgradeosudo pacman -Syu - Descargar e instalar Docker Desktop
Imágenes
Descargar imágenes
# Sintaxis
docker pull <image-name:version>
# Ejemplo
docker pull postgres:17.4
Contenedores
Crear contenedor
# Sintaxis
docker run --name <container-name> -p <host>:<container> -e <VAR_NAME=123> -d <image-name:version>
# Ejemplo
docker run --name pgsql-175 -p 5432:5432 -e POSTGRES_PASSWORD=123456 -d postgres:17.5
- Docker descarga la imagen si no está instalada y luego crea el contenedor
- Crea un contenedor con el nombre especificado y la imagen a usar (mongo, postgres, etc.)
- Si no se especifica un nombre, Docker genera uno aleatorio
- Si no se exponen los puertos, no se podrá acceder al contenedor desde el host (ej. sin acceso a la base de datos)
Generalmente se utiliza docker run para:
- Bases de datos de desarrollo, por ejemplo, levantar un PostgreSQL o MongoDB temporalmente
- Probar imágenes oficiales sin necesidad de configurar
docker-compose - Probar configuraciones antes de escribir un
docker-compose.yml
Alternativamente, para proyectos personales o con varios servicios se utiliza:
- Docker Compose (
docker-compose.yml) para definir y orquestar múltiples contenedores - Dockerfile para construir imágenes personalizadas
Administrar contenedor e imagen
docker ps # Contenedores en ejecución
docker ps -a # Todos los contenedores (ejecutándose y detenidos)
docker ps -q # Solo IDs de contenedores en ejecución
docker ps -aq # Solo IDs de todos los contenedores
docker start <container-name> # Iniciar contenedor
docker restart <container-name> # Reiniciar contenedor
docker update --restart unless-stopped <container-name> # Inicio automático
docker stop <container-name> # Detener contenedor
docker rm <container-name> # Eliminar contenedor (primero detenerlo)
Comandos útiles para limpieza
docker images # Listar todas las imágenes
docker images -a # Incluir imágenes intermedias
docker images -q # Solo IDs de imágenes
docker images postgres # Filtrar por nombre
docker images postgres:17* # Filtrar por etiqueta
docker rmi <image-name> # Eliminar imagen
docker rmi $(docker images -q) # Eliminar TODAS las imágenes
docker rmi $(docker images -f "dangling=true" -q) # Eliminar SOLO imágenes sin etiqueta
docker image prune # Elimina imágenes "dangling" (sin etiqueta/nombre)
docker image prune -a # Elimina imágenes que no tienen contenedores asociados