Cómo administrar fácilmente las dependencias de Docker

08:25 13/09/2021 | 2 Lượt xem

La tecnología de contenedorización de Docker ha transformado en gran medida la forma en que creamos, implementamos y administramos aplicaciones. Con Docker, puede empaquetar código junto con todas sus dependencias como unidades de contenedor portátiles e independientes, lo que garantiza que su aplicación funcione de manera confiable y consistente de una plataforma informática a otra.

Las imágenes son el corazón de la tecnología Docker. Una imagen de Docker contiene una colección de archivos (o capas) de solo lectura que satisfacen todas las necesidades, como herramientas del sistema, bibliotecas, código y otras dependencias, necesarias para iniciar un entorno de contenedor completamente operativo. Es un paquete de software ejecutable que viene con instrucciones para configurar contenedores.

Para crear una imagen de contenedor, necesita usar un Dockerfile, un documento de texto simple que contiene un conjunto de instrucciones para ensamblar una imagen. Dockerfile le permite definir las dependencias necesarias para crear una imagen.

Al administrar adecuadamente las dependencias de Docker, puede optimizar su proceso de desarrollo de software y aprovechar al máximo la revolucionaria tecnología de contenedorización.

Esta publicación de blog habla sobre algunas de las mejores prácticas para la administración de dependencias de Docker:

1. Aplicar la facilidad de servicio

Asegurarse de que sus dependencias sean fáciles de mantener es fundamental para el bienestar de su aplicación de contenedor. La entrega de imágenes legibles, eficientes y fáciles de mantener puede llevar sus esfuerzos de desarrollo de Docker al siguiente nivel.

Ilustremos algunas formas de hacer cumplir el mantenimiento de su dependencia.

a) Utilice etiquetas de imagen específicas

Una etiqueta se usa a menudo para hacer referencia a la versión de una imagen de Docker. Al seleccionar la imagen base para su aplicación Docker, se recomienda ir a una etiqueta específica tanto como sea posible.

Al usar el Más reciente La etiqueta puede ser sofisticada, puede introducir cambios significativos a lo largo del tiempo y degradar la capacidad de mantenimiento de su aplicación. O Más reciente La etiqueta también es la etiqueta predeterminada que se usa cuando no especifica una en sus comandos de Docker.

O Más reciente La etiqueta está en movimiento: si usa esta etiqueta, implica que la versión de la imagen subyacente puede cambiar para reflejar los cambios “más recientes”. Esto puede dar lugar a efectos secundarios no deterministas al reconstruir la imagen más tarde.

Cuando usa una etiqueta de imagen específica, obtiene un comportamiento determinista con sus dependencias de Docker. Si está familiarizado con npm gestión de la dependencia, es el mismo comportamiento determinista que queremos lograr, así como el uso de archivos de bloqueo durante npm install.

A continuación, se muestra un ejemplo de un Dockerfile con una etiqueta de imagen específica:

b) Ordenar argumentos de varias líneas

La clasificación alfanumérica de argumentos de varias líneas mejorará la experiencia del desarrollador. Facilita la implementación de cambios posteriores, evita la duplicación de paquetes y mejora la legibilidad del código.

Aquí hay un ejemplo:

c) Desacoplar aplicaciones

Se recomienda tener una preocupación por contenedor. Si sus aplicaciones están desacopladas en varios contenedores, esto puede mejorar el proceso general de administración de contenedores.

Limitar cada contenedor a una sola preocupación puede ayudar a mantener su aplicación limpia y modular. Esto hará que la gestión de sus dependencias sea fácil y sin complicaciones.

Suponga que ha implementado una aplicación de contenedor MEAN. En este caso, debe comprender cuatro contenedores diferentes, cada uno con su propia imagen distinta: uno para MongoDB, uno para Express.js, uno para Angular y otro para Node.js.

d) Utilice el archivo .dockerignore

UN .dockerignore archivo es equivalente a.gitignore Expediente. Puedes usar el .dockerignore file para excluir explícitamente ciertos archivos, directorios o dependencias del proceso de construcción de la imagen.

Común .dockerignore , puede mejorar el rendimiento de la compilación y hacer que su aplicación sea más fácil de mantener.

2. Mantenga sus imágenes pequeñas

El tamaño de la imagen es fundamental para determinar el rendimiento de su aplicación de contenedor. Al mantener las imágenes pequeñas, puede administrar de manera eficiente las dependencias de Docker.

Las imágenes pequeñas conducen a implementaciones más rápidas y un rendimiento óptimo de sus aplicaciones. También ayudan a mejorar la seguridad al reducir el área de superficie de ataque.

Señalemos algunas formas de optimizar el tamaño de sus imágenes.

a) Evite instalar dependencias innecesarias

Si instala paquetes por el simple hecho de hacerlo, aumentará el tiempo de compilación y degradará el rendimiento general. Por ejemplo, agregar un editor de texto a una imagen de base de datos resultará en una complejidad innecesaria.

También puede configurar el administrador de paquetes apt para evitar la instalación de dependencias redundantes. Para lograr esto, agregue el –No se recomienda instalar bandera en apt-get llamadas.

Aquí hay un ejemplo:

b) Elija la imagen base con el tamaño más pequeño

La imagen base, o imagen principal, es la capa inicial definida por el DESDE instrucción en el Dockerfile. Las declaraciones posteriores que hacen referencia a otras dependencias se basan en la imagen principal. Si la imagen principal es liviana, la imagen resultante también será liviana, lo que agilizará la descarga.

Por ejemplo, optar por imágenes con sabor a base de Alpine puede reducir drásticamente el tamaño de la imagen y proporcionar mejoras de rendimiento en la mayoría de los casos. Como puede ver a continuación, utilizando el lts-alpino versión en lugar de es reduce el tamaño de la imagen principal en casi nueve veces:

Elección de imágenes Docker base con las más pequeñas

c) Reducir el número de capas

Dado que cada instrucción en el Dockerfile crea una capa adicional en la imagen, asegurarse de que las instrucciones sean mínimas mejora el rendimiento de la compilación.

Por ejemplo, en lugar de incluir varios CORRER comandos en el Dockerfile, puede consolidarlos en una sola línea.

Aquí hay un ejemplo:

Combinemos los comandos:

Mientras que la primera opción agrega dos capas a la imagen, la segunda agrega solo una. Por lo tanto, el uso de la segunda opción reduce el tamaño general de la imagen.

d) Utilice compilaciones de varias etapas

Construcciones de varias etapas es una función útil de Docker que le permite reducir la cantidad de desorden en su imagen final. Puede usarlo para compilar su aplicación en un primer contenedor de “compilación” e inyectar los resultados en un segundo contenedor, sin tener que cambiar a otro Dockerfile.

Esta función le permite elegir las dependencias que desea copiar de una etapa a la siguiente, asegurándose de mantener solo las que necesita en la imagen final.

El uso de compilaciones de varias etapas es una buena práctica para reducir el uso de dependencias de compilación en la aplicación de contenedor implementada. Le permite separar los entornos de construcción y ejecución, lo que posteriormente reduce el tamaño de la imagen final.

3. Mantenga las imágenes seguras

Mantener las imágenes seguras es un aspecto importante de la gestión de dependencias de Docker. Al mantener la seguridad de la imagen de Docker durante todo el ciclo de vida del desarrollo, puede proteger su entorno de contenedores de violaciones de seguridad y prácticas de codificación inseguras.

Analicemos algunas formas de mantener seguras las imágenes de Docker.

a) Escanear imágenes

Escaneo de imágenes de Docker implica analizar el contenido de una imagen para descubrir vulnerabilidades de seguridad o malas prácticas de codificación.

Es una práctica recomendada de seguridad revisar continuamente sus imágenes en cada paso del proceso de desarrollo, desde la etapa inicial del desarrollo hasta la producción. Esta es la mejor manera de garantizar que el entorno de su contenedor esté protegido de las debilidades que pueden causar estragos en su aplicación.

Necesita una herramienta especializada para escanear sus imágenes de manera eficiente y detectar fallas conocidas. Con un buen escáner, puede analizar constantemente sus imágenes y corregir las debilidades antes de que se interpongan en su aplicación.

Por ejemplo, WhiteSource proporciona una solución robusta de extremo a extremo que le permite mantener su entorno en contenedores seguros y protegidos. Con la herramienta, puede descubrir vulnerabilidades continuamente a lo largo del ciclo de vida del desarrollo y recibir alertas en tiempo real cada vez que se detecta un problema. No tiene que preocuparse por enviar dependencias vulnerables en sus aplicaciones de Docker.

b) Actualice con frecuencia

Es importante actualizar sus imágenes de Docker con frecuencia. Las nuevas actualizaciones de imágenes a menudo vienen con parches para los agujeros de seguridad descubiertos. Si conserva una versión anterior, puede hacer que su aplicación de contenedor sea susceptible a ataques maliciosos.

Como se señaló anteriormente, se recomienda utilizar etiquetas de imagen específicas al realizar actualizaciones. Si usa el Más reciente etiqueta, puede introducir cambios significativos en su aplicación.

La gestión adecuada de las dependencias de Docker requiere esfuerzo

Dominar cómo optimizar su entorno de desarrollo de Docker requiere tiempo y esfuerzo. Necesita aprender a manejar para asegurarse de que la aplicación de su contenedor brinde el valor esperado.

Esperamos que las mejores prácticas anteriores para administrar las dependencias de Docker hayan sentado las bases para aprovechar todo el poder de la tecnología de contenedores.

Si administra bien las dependencias, puede aprovechar al máximo la tecnología innovadora de Docker y crear aplicaciones de alto rendimiento, seguras y escalables. Es lo que necesita para mejorar sus esfuerzos de desarrollo y cumplir la promesa de contenerización: codifique una vez y ejecute en cualquier plataforma, independientemente de la escala.

Related Posts

Agregar fondos a archivos PDF

Este artículo explicará cómo agregar un fondo a un PDF con Foxit PDF Editor. Para agregar un nuevo fondo, haga lo siguiente: 1. Abra un documento al que desee agregar un fondo y elija...

lên đầu trang