Noticias

Ubuntu cincelado con bricolaje: haga su propia imagen base de Ubuntu cincelada

en el anterior postal, expliqué cómo hicimos nuestra imagen de Ubuntu 15 veces más pequeña creando partes específicas de Ubuntu para desarrolladores de .NET. En este blog, proporcionaré instrucciones paso a paso sobre cómo personalizar una imagen base de Ubuntu bien diseñada para cualquier caso de uso.

  • Chiselled Ubuntu Containers combina Distroless y Ubuntu para crear contenedores más pequeños y seguros.
  • La reducción del tamaño del contenedor reduce la superficie de ataque general. Combinado con el soporte y la calidad del contenido de la distribución de Ubuntu, Ubuntu bien diseñado es una importante mejora de seguridad.
  • Chisel proporciona una CLI fácil de usar para los desarrolladores para instalar segmentos de paquetes desde distribuciones de Ubuntu aguas arriba en sistemas de archivos de contenedores.
Así es como se ve un contenedor de Ubuntu bien diseñado… bueno, si le preguntas a la DALL-E2 AI.

Ya no creo en las imágenes perfectas a base de contenedores.Recuerdo haber pensado que Google Descargo de responsabilidad la base está bastante cerca, pero resulta que la imagen base perfecta es en realidad FROM scratch: proporciona solo lo que necesita e instala desde distribuciones de Linux populares, bien mantenidas y compatibles. Así es como puedes construir el tuyo propio.

Paso 1: construye Chisel con Docker

Para construir una imagen de Ubuntu cincelada, primero necesita un cincel.Esto cincel La herramienta de división del paquete para crear imágenes base de Ubuntu pulidas es una aplicación Go y actualmente no proporciona versiones preconstruidas. Por lo tanto, debe usar el SDK de Golang para compilarlo.

proporciono un Dockerfile de 20 líneas ¡Esto muestra cómo compilar y empaquetar Chisel como una imagen de contenedor usando Docker, Go SDK y Chisel mismo!Cuando se complete la compilación, el resultado será una versión cincelada basada en Ubuntu que tiene menos de 16 MB cincel image, que es una buena demostración de la efectividad de las imágenes de Ubuntu.finales cincel La imagen OCI contiene una base personalizada de Ubuntu (principalmente certificados Glibc y CA) y herramientas Chisel compiladas de Go, que se pueden usar en nuestras futuras compilaciones de contenedores.

LEER  Kubernetes para Finservs: éxito en la transformación digital

Paso 2: Ubuntu cincelado de bricolaje

Para crear su propia imagen base de Ubuntu, comenzará con FROM scratch imagen base y agregue los bits de Ubuntu necesarios de las dependencias del paquete de su elección.

Inspirado en Distroless de Google de acuerdo a image, para este ejemplo, elegí el siguiente segmento de paquete de la distribución de Ubuntu: Documentos Básicos_Básico, Información básica de liberación de archivos, ca-certificates_datay libc6_libs.

Para hacer esto, use las siguientes 5 instrucciones documento:

# chiselled-base.dockerfile

# "chisel:22.04" is our previous "chisel" image from Step 1
# we built and tagged it locally using the Docker CLI
FROM chisel:22.04 as installer

WORKDIR /staging
# Use chisel to cut out the necessary package slices from the
# chisel:22.04 image and store them in the /staging directory
RUN ["chisel", "cut", "--root", "/staging", \
    "base-files_base", \
    "base-files_release-info", \
    "ca-certificates_data", \
    "libc6_libs" ]

# Start with a scratch image as the base for our chiselled Ubuntu base image
FROM scratch
# Copy the package slices from the installer image
# to the / directory of our chiselled Ubuntu base image
COPY --from=installer [ "/staging/", " ]

Una vez que creas esto documentopuede crear una nueva imagen de Ubuntu con el comando: docker build . -t chiselled-base:22.04 -f chiselled-base.dockerfile

Su imagen base personalizada de Ubuntu debe tener alrededor de 5 MB y poder ejecutar muchos C/C++, Golang u otros programas independientes vinculados dinámicamente.puedes usarlo proporcionar muestra documento Coloque un programa en C encima de su nueva imagen base.

Paso 3: agregue compatibilidad con SSL a su imagen base

Si su aplicación requiere compatibilidad con SSL, puede agregarla fácilmente a su imagen base de Ubuntu bien diseñada al Agregue los siguientes 30 caracteres a tu anterior documento:

# chiselled-ssl-base.dockerfile

# "chisel:22.04" is our previous "chisel" image from Step 1
# we built and tagged it locally using the Docker CLI
FROM chisel:22.04 as installer
WORKDIR /staging
RUN ["chisel", "cut", "--root", "/staging", \
   "base-files_base", \
   "base-files_release-info", \
   "ca-certificates_data", \
   "libc6_libs", \
   "libssl3_libs", \
   "openssl_config" ]

FROM scratch
COPY --from=installer [ "/staging/", " ]

Para construir una nueva imagen base de Ubuntu con soporte SSL, use el siguiente comando: docker build . -t chiselled-ssl-base:22.04 -f chiselled-ssl-base.dockerfile

Una nueva imagen base que admita SSL debe tener menos de 11 MB y se puede usar en aplicaciones que requieren SSL.

Este proceso simple le permite agregar y eliminar fácilmente dependencias de paquetes y personalizar su imagen base de Ubuntu para satisfacer sus necesidades y requisitos específicos.Para obtener más ejemplos y casos de uso, incluida la creación de segmentos de paquetes adicionales, consulte Nuestro repositorio git de ejemplo.

Las imágenes de contenedor de Ubuntu cinceladas ofrecen los beneficios de una distribución de Linux bien conocida y bien mantenida combinada con los beneficios de una imagen de contenedor de estilo Distroless ultrapequeño, lo que proporciona una base segura y eficiente para crear e implementar aplicaciones en contenedores.

Entonces, ¿por qué no probar una imagen de contenedor de Ubuntu bien diseñada y ver los beneficios por sí mismo? Como dicen, la prueba está en el pudín, o en este caso, ¡el tamaño de la imagen del contenedor!

LEER  Descubra el molesto agujero de seguridad del cortafuegos Linux Netfilter

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba