Optimización Avanzada en Docker
La importancia de Aprender Docker
Desbloqueando el Poder de Docker
Construcción de Imágenes Multi-stage
Escaneo de imágenes en Docker
Optimización de Imágenes de docker con Distroless
Compilación Multiplataforma
Gestión de Caché y Eficiencia en Builds
Reducción de Dependencias y Minimización de Tamaño
Optimización de Build Context y Reducción de Transferencias
Explorando Docker Hub
Buenas Prácticas en Docker
Uso Eficiente de Capas en Imágenes Docker
Uso de .dockerignore para Optimización
Eliminación de Archivos Temporales y Residuos en Docker
Agrega usuarios a tu imagen de docker
Mejores Prácticas para Construcción de Imágenes
Instalación y Configuración en Entornos Multiplataforma
Despliegue de Docker en Azure y Entornos Locales
Publicar tu imagen a Container Apps de Azure
Redes Avanzadas y Balanceo de Carga
Modelos de Red en Docker
Exposición y Publicación de Puertos en Docker
Balanceo de Carga con Docker
Automatización de CI/CD
Ejecución de Scripts Multi-line en Docker
Automatización de CI/CD con Docker
Estrategias Avanzadas de CI/CD en Docker
Publicando mi imagen de docker a la nube con CI/CD
Orquestación
Retomando Docker Compose
Secciones en un archivo Docker Compose
Agregando volúmenes con Docker Compose
Secuencia de apagado
Introducción a Docker Swarm
Replicación de Stacks con Docker Compose
De Docker a la nube
Orquestadores de contenedores
Costos de Docker
Develop
Introducción a los devcontainers
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Cuando trabajamos con Docker, una de las revelaciones más impactantes para los desarrolladores es descubrir que las imágenes, por defecto, se crean bajo el usuario root. Esto puede representar un riesgo significativo si no se controla adecuadamente, ya que el acceso root otorga privilegios completos sobre los recursos. Este nivel de acceso puede no ser ideal si la seguridad es una de tus prioridades. La buena noticia es que hay una solución sencilla: crear un usuario con menos privilegios dentro de la imagen. Vamos a explorar cómo hacerlo para mejorar la seguridad de tus imágenes Docker.
Crear usuarios específicos dentro de tus imágenes es una medida preventiva eficaz. Al seguir esta práctica, puedes:
Limitar el acceso: Los usuarios no-root tienen acceso restringido dentro de la imagen, lo que reduce la posibilidad de modificaciones no autorizadas o ejecución de comandos peligrosos.
Seguridad mejorada: Disminuye la superficie de ataque, ya que muchos exploits buscan explorar sectores con acceso root.
Facilidad de manejo: Al tener un grupo y usuario con el mismo nombre, es más fácil seguir sus actividades y efectivamente reducir errores administrativos.
Para solidificar la seguridad en tus imágenes Docker, es esencial modificar tu Dockerfile adecuadamente.
Usar una imagen base: Usualmente, empezamos con una imagen base como Nginx. Puedes hacer esto con el siguiente comando:
FROM nginx
Crear grupos y usuarios: Define un grupo y un usuario con el mismo nombre por conveniencia y claridad.
RUN groupadd amin &&
useradd -g amin amin
Asignar permisos de acceso limitados: Especifica las carpetas a las que el nuevo usuario puede acceder.
RUN chown -R amin:amin /var/www/html
Cambiar al usuario no-root: Antes de ejecutar otras tareas, asegúrate de cambiar al nuevo usuario.
USER amin
Ajustar comandos según privilegios: Asegúrate de que cualquier comando que necesite derechos de root se ejecute antes de cambiar al usuario.
RUN apt-get update && apt-get install -y some-package
Luego puedes crear el usuario y cambiar a él como se mostró anteriormente.
Si un comando necesita ejecutarse con permisos elevados, debes asegurarte de que esos comandos se ejecuten antes de cambiar al usuario limitado. Por ejemplo, cuando uses comandos como apt-get update
, hazlo al principio de tu Dockerfile mientras aún tienes acceso root.
Implementando esta metodología, asegurarás que:
Al seguir estos pasos meticulosos y cuidadosos al crear tus Dockerfiles, estás fortaleciendo la seguridad de tus imágenes y protegiendo activamente tu entorno de desarrollo y producción. Implementa estas prácticas esenciales y continúa explorando maneras de optimizar tus habilidades y conocimientos en Docker para avanzar profesionalmente y mantener segura tu infraestructura.
Aportes 1
Preguntas 3
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?