GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

¿Cómo administrar contenedores Docker? Mejores prácticas

Docker ha revolucionado el desarrollo de software con el uso de contenedores y es la plataforma de contenedores líder en la actualidad.

Los contenedores eliminan muchos procesos tediosos del desarrollo de software. Maximice el potencial de Docker implementando las mejores prácticas para mejorar la seguridad, la velocidad y la eficiencia.

En este tutorial, analizamos las mejores prácticas de administración de contenedores de Docker.

¿Qué es Docker?

Docker es una utilidad de código abierto que elimina las tareas repetitivas en el desarrollo de software.

Permite a un desarrollador crear un contenedor, un entorno controlado para ejecutar un proceso.

El contenedor utiliza una imagen, una réplica de un entorno operativo específico. Aunque suene a virtualización de servidores, los contenedores de Docker están optimizados para ejecutar un comando con recursos mínimos al cargar solo las bibliotecas y dependencias que se requieren.

Prácticas recomendadas para gestionar contenedores Docker

Gestión de la eficiencia de los contenedores Docker con una planificación adecuada

Al planificar su proceso de software, es mejor planificar el sistema de contenedores para asegurarse de cumplir con las tareas con la menor cantidad de trabajo y recursos.

Antes de construir y ejecutar estos entornos virtuales, considere cómo puede asignar cada proceso a un contenedor y cómo interactúan estos contenedores.

Además, debes examinar si los contenedores son la mejor herramienta para ti. Aunque Docker tiene muchos beneficios, algunas aplicaciones funcionan mejor en máquinas virtuales.

Eche un vistazo a la diferencia entre contenedores y máquinas virtuales y decida cuál se adapta mejor a sus necesidades.

Aproveche la velocidad de los contenedores

A diferencia de una máquina virtual, un contenedor no necesita una gran biblioteca de recursos para ejecutarse. Un contenedor puede cargarse, ejecutarse y descargarse de la memoria en una fracción de segundo.

Para obtener los mejores resultados de rendimiento, desea mantener las imágenes de Docker pequeñas y su Docker se compila rápidamente. Hay muchas formas de reducir el tamaño de la imagen, como elegir una base de imagen más pequeña, utilizar construcciones de varias etapas y evitar capas innecesarias.

Del mismo modo, el almacenamiento en caché local de las capas de Docker existentes le permite reconstruir imágenes más rápido y, en última instancia, aprovechar la velocidad de sus contenedores.

Ejecute un único proceso en cada contenedor

No hay límite para la cantidad de contenedores que puede iniciar y eliminar. Cada uno puede ejecutar varios procesos en su entorno.

Tenga en cuenta que cuantas más operaciones realiza un contenedor, más lento se vuelve. Esto es especialmente cierto si limita el uso de memoria y CPU de un contenedor. La cantidad de recursos necesarios para cargar tiene un fuerte impacto en el rendimiento. Puede ser fácil sobrecargar la memoria ejecutando varias tareas a la vez. El uso de un proceso por contenedor ayuda a limitar esos recursos compartidos y reduce el espacio total del contenedor.

Dedicar un solo proceso a cada contenedor ayuda a mantener un entorno operativo limpio y eficiente.

Usar los servicios SWARM

Si está administrando varios contenedores en varias máquinas host, considere usar los servicios de Docker Swarm, una herramienta de orquestación de contenedores. Docker Swarm automatiza muchas tareas de programación y administración de recursos y ayuda a escalar rápidamente si el crecimiento rápido es una preocupación.

Una alternativa popular a Swarm es Kubernetes, una plataforma alternativa para automatizar la implementación de aplicaciones. La elección entre Docker Swarm y Kubernetes depende principalmente de las necesidades de su organización.

Evite el uso de contenedores para almacenar datos

El almacenamiento de datos aumenta la entrada/salida (lectura/escritura de disco) de un contenedor.

Una mejor herramienta para el almacenamiento de datos es un repositorio de software compartido.

El acceso al repositorio remoto se otorga a los contenedores a pedido, lo que reduce el tamaño del contenedor. También ayuda a evitar que diferentes contenedores carguen y almacenen datos redundantes. Finalmente, puede evitar cuellos de botella cuando varios procesos acceden al almacenamiento.

Buscar y conservar una imagen de Docker que funcione

Una imagen contiene todas las configuraciones, dependencias y código necesarios para una tarea.

Puede ser un desafío crear una imagen para el ciclo de vida completo de una aplicación. Sin embargo, una vez que cree una imagen, evite cambiarla. Puede ser tentador actualizar una imagen de Docker a medida que se actualizan las dependencias. Pero modificar una imagen a mitad de ciclo puede causar estragos en el proceso de desarrollo. Esto es especialmente cierto si diferentes equipos usan imágenes con dependencias incompatibles.

El uso de una sola imagen de principio a fin facilita la resolución de problemas.

Todos los equipos trabajarán con el mismo entorno base, dedicando menos tiempo a unir diferentes secciones de código. Además, se puede completar y probar una única actualización en varios contenedores. Reduce el trabajo duplicado de actualizaciones individuales y correcciones de código. También ayuda a los equipos de control de calidad a encontrar y solucionar problemas con mayor rapidez.

Redes en contenedores

A los contenedores en Docker se les asignan direcciones IP para comunicarse entre sí. Esto puede crear desafíos en un entorno de red.

En el pasado, el ––LINK El comando se utilizó para administrar el direccionamiento y las comunicaciones. Esta característica se considera heredada y se reemplazó con redes puente.

La red de puentes definida por el usuario entre contenedores permite el acceso a todos los puertos dentro de la red de puentes. También bloquea todos los puertos hacia el mundo exterior. Esto crea un entorno seguro para los contenedores. El tráfico interno fluye sin interrupciones y está protegido de influencias externas.

Para obtener más información sobre los puentes definidos por el usuario (y otras tecnologías), consulte la documentación de Docker.

Prácticas recomendadas de seguridad de Docker

El equipo de Docker actualizó muchos protocolos modernos de seguridad de Internet. Los desarrolladores de la red original no incorporaron la seguridad en los protocolos de red.

Actualizar la seguridad siempre es difícil y costoso. Una práctica mucho mejor es implementar la seguridad durante el desarrollo.

Aquí hay algunas opciones a considerar para administrar la seguridad de los contenedores Docker .

1. Evite ejecutar contenedores con privilegios de root

La mayoría de los administradores de Linux están familiarizados con los peligros de otorgar privilegios completos de raíz a los usuarios. Advertencias similares se aplican a los contenedores. Una mejor práctica es crear contenedores con solo los privilegios que necesitan.

Usa el –u etiqueta para especificar un usuario (en lugar de un administrador).

2. Credenciales seguras

Guarde las credenciales en un lugar diferente de donde las usa. Además, las variables ambientales son una mejor manera de administrar el acceso dentro de un contenedor.

Incluir credenciales en el mismo contenedor es como guardar una contraseña en una nota adhesiva. En el peor de los casos, una infracción en un contenedor puede extenderse rápidamente a toda una aplicación.

3. Utilice –PRIVILEGED Etiquete con moderación

De forma predeterminada, los contenedores se ejecutan en un modo sin privilegios más seguro.

Los contenedores no podrán acceder a otros dispositivos. Si se requiere acceso a otros dispositivos, use el –privileged etiqueta para otorgar acceso caso por caso.

4. Usar aplicaciones de seguridad de terceros

Siempre es una buena idea tener un segundo par de ojos para revisar su configuración de seguridad. Las herramientas de terceros aprovechan la habilidad de los especialistas en seguridad para analizar su software. También pueden ayudar a escanear su código en busca de vulnerabilidades conocidas. Además, a menudo incluyen una interfaz fácil de usar para administrar la seguridad de los contenedores.

5. Considere cambiar a registros de software privados

Docker Hub mantiene un registro gratuito de imágenes de software, que puede resultar muy útil para los desarrolladores novatos o los pequeños equipos de desarrollo que trabajan en proyectos complejos.

Sin embargo, la seguridad puede ser una preocupación al usar estos registros. Vale la pena evaluar los costos y beneficios de alojar sus registros de software. Si desea una forma práctica de distribuir recursos y compartir imágenes de Docker entre contenedores, es posible que desee configurar un registro de Docker privado.


No
Docker
  1. Cómo crear, enumerar y eliminar contenedores Docker en Linux

  2. Supervisión de contenedores Docker:ventajas, prácticas recomendadas y herramientas imprescindibles

  3. Cómo compartir datos entre contenedores Docker

  4. Cómo listar contenedores Docker

  5. Cómo hacer una copia de seguridad y restaurar contenedores Docker

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo detener los contenedores de Docker

Cómo nombrar o renombrar contenedores Docker

Cómo gestionar contenedores Docker

Cómo listar/iniciar/detener/eliminar contenedores docker