~/docs /DOCKER
DOCKER
DOCKER
Imported from Notion: DOCKER
updated:: 2026.07.10
Acceso a Docker sin sudo
Para ejecutar comandos docker sin sudo, puedes añadir tu usuario al grupo docker. Esto simplifica el flujo de trabajo, pero también amplía los privilegios de ese usuario sobre el motor de Docker, así que conviene usarlo solo si entiendes el impacto en seguridad.
warningDar acceso al grupo
dockerequivale, en la práctica, a conceder privilegios elevados sobre el host. Úsalo con cuidado y solo para cuentas de confianza.
Pasos
- Añade tu usuario al grupo
docker:
sudo usermod -aG docker $USER
-
Cierra la sesión y vuelve a iniciarla, o reinicia la terminal para que el cambio tenga efecto.
-
Verifica que puedes ejecutar
dockersinsudo:
docker run hello-world
Conceptos fundamentales de Docker
Entender estos conceptos es clave para trabajar eficazmente con Docker:
-
Imágenes (
images): plantillas de solo lectura que contienen las instrucciones para crear un contenedor. Una imagen puede basarse en otra imagen, como una imagen de Ubuntu con Apache preinstalado. Puedes crear imágenes propias con unDockerfileo usar imágenes públicas de Docker Hub. -
Contenedores (
containers): instancias ejecutables de una imagen. Un contenedor es un proceso aislado en tu sistema que incluye todo lo necesario para ejecutar una aplicación. Puedes iniciarlo, detenerlo, moverlo o eliminarlo. -
Volúmenes (
volumes): forma recomendada de persistir datos generados por contenedores Docker. Se almacenan y gestionan por Docker, lo que permite que los datos sobrevivan al ciclo de vida del contenedor. -
Redes (
networks): permiten que los contenedores se comuniquen entre sí y con el host. Docker crea redes por defecto y también puedes definir redes personalizadas para aislar servicios.
validatedSi estás empezando, piensa en Docker así:
- Imagen = plantilla
- Contenedor = instancia en ejecución
- Volumen = almacenamiento persistente
- Red = comunicación entre servicios
Comandos básicos de Docker
Aquí tienes los comandos esenciales para empezar:
| Comando | Qué hace | Uso típico |
|---|---|---|
docker run [IMAGEN] | Crea y ejecuta un contenedor a partir de una imagen | Probar una imagen o levantar un servicio |
docker images | Lista las imágenes disponibles localmente | Ver qué imágenes tienes descargadas |
docker rmi [IMAGEN_ID_O_NOMBRE] | Elimina una o más imágenes | Liberar espacio o limpiar imágenes antiguas |
Ejemplos mínimos
docker run -p 80:80 nginx
docker run -d --name mi-aplicacion mi-imagen
info
docker runcrea y arranca un contenedor en un solo paso. Para la administración diaria de contenedores ya creados, consulta la guía de Administrar contenedores.
Docker Compose: orquestación de varios contenedores
Cuando una aplicación tiene varios servicios —por ejemplo, web, base de datos y caché— gestionarlos con comandos sueltos puede volverse incómodo. Aquí entra Docker Compose.
¿Qué es Docker Compose?
Docker Compose permite definir y ejecutar aplicaciones multi-contenedor usando un archivo YAML, normalmente docker-compose.yml o compose.yml. Con él describes servicios, redes y volúmenes, y puedes levantarlos o apagarlos como una sola unidad.
Ventajas principales
-
Configuración centralizada: defines toda la pila en un único archivo.
-
Consistencia: el mismo entorno se puede reproducir en desarrollo, pruebas o despliegues.
-
Menos errores manuales: reduce la necesidad de repetir comandos largos.
-
Mejor coordinación entre servicios: facilita la conexión entre contenedores.
Estructura básica de un archivo Compose
Un archivo compose.yml o docker-compose.yml suele incluir:
-
services: define los contenedores de la aplicación.-
image: imagen a usar. -
build: ruta alDockerfile. -
ports: mapeo de puertos. -
volumes: persistencia o compartición de archivos. -
environment: variables de entorno. -
depends_on: dependencias entre servicios. -
networks: redes a las que se conecta el servicio.
-
-
volumes: volúmenes con nombre para persistencia. -
networks: redes personalizadas.
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
networks:
- app-network
volumes:
data:
networks:
app-network:
Comandos básicos de Compose
docker compose up -d
docker compose down
docker compose up -d --build
docker compose logs -f
docker compose exec app bash
validatedEn proyectos pequeños, Compose te ahorra mucho tiempo. En proyectos medianos o grandes, además mejora la reproducibilidad entre equipos.
Buenas prácticas básicas
Puertos
-
Expón solo los puertos que realmente necesites.
-
Usa el mapeo
HOST:CONTENEDORcon intención clara. -
Evita publicar servicios internos si no hace falta.
Volúmenes
-
Usa volúmenes para datos que deban sobrevivir a la eliminación del contenedor.
-
Para datos importantes, evita depender solo del sistema de archivos del contenedor.
docker exec
-
Úsalo para inspeccionar o depurar un contenedor en ejecución.
-
Es útil para abrir una shell, revisar archivos o probar comandos dentro del entorno del contenedor.
Actualización de imágenes
-
Revisa periódicamente si la imagen que usas tiene versiones nuevas.
-
Si trabajas con Compose, reconstruye cuando cambies el
Dockerfileo dependencias.
Seguridad
-
Si no necesitas
sudo, puedes añadir tu usuario al grupodocker, pero recuerda que eso concede acceso muy amplio al motor de Docker. -
En entornos compartidos o sensibles, conviene controlar cuidadosamente quién pertenece a ese grupo.
Recursos adicionales
-
Documentación oficial de Docker: https://docs.docker.com/
-
Documentación oficial de Docker Compose: https://docs.docker.com/compose/
-
Docker Hub: https://hub.docker.com/
-
Awesome Compose: https://github.com/docker/awesome-compose
- EOF -