Saltar al contenido

¿Qué imagen base de Docker se debe usar para instalar aplicaciones en un contenedor sin ningún sistema operativo adicional?

No dejes de divulgar nuestros post y códigos en tus redes, apóyanos para aumentar esta comunidad.

Solución:

Lo que está pidiendo no es posible de inmediato con Docker. Cada imagen de Docker tiene su propio sistema de archivos raíz, que necesita tener algún tipo de sistema operativo instalado.

Tus opciones son:

  1. Usa una imagen base mínima, como la imagen BusyBox. Esto le dará el mínimo absoluto que necesita para poner en marcha un contenedor.

  2. Usar la imagen base de CentOS, en cuyo caso su contenedor ejecutará el mismo sistema operativo o uno muy similar.

La razón por la que las imágenes de Docker son así es porque están destinadas a ser portátiles. Cualquier imagen de Docker está diseñada para ejecutarse en cualquier lugar donde se esté ejecutando Docker, independientemente del sistema operativo. Esto significa que la imagen de Docker debe contener un sistema de archivos raíz completo y una instalación del sistema operativo.

Lo que puede hacer si necesita cosas del sistema operativo host es compartir un directorio usando volúmenes de Docker. Sin embargo, esto generalmente está destinado a ser utilizado para montar directorios de datos, y aún requiere que la imagen de Docker tenga un sistema operativo.


Dicho esto, si tiene un binario vinculado estáticamente que no tiene absolutamente ninguna dependencia, se vuelve fácil crear una imagen mínima. Esto se denomina “microcontenedor”, y Go en particular es muy adecuado para producirlos. Aquí hay algunas lecturas adicionales sobre los microcontenedores y cómo producirlos.


Otra opción que podría considerar si todo lo que desea es que la parte de administración de recursos de los contenedores esté usando lxc-execute, como se describe en esta respuesta. Pero también pierde todas las demás características agradables de Docker. Desafortunadamente, lo que está tratando de hacer no es para lo que está diseñado Docker.

Como entendí Docker, cuando usas un imagen base, De verdad no instalar un sistema operativo adicional.

Es solo una especie de estructura de directorio con programas preinstalados o podemos decir un sistema de archivos de un sistema operativo de imagen base real.

En la mayoría de los casos [click this link for the exception], ventana acoplable en sí [the docker engine] se ejecuta en una máquina virtual Linux cuando se usa en Mac y Windows.

Si te confundes con virtualización, no hay virtualización dentro de Docker Container. Los contenedores se ejecutan en el espacio del usuario sobre el kernel del sistema operativo host. Entonces, los contenedores y el sistema operativo host compartirían el mismo kernel.

Entonces, para resumir:

  1. Considere que el sistema operativo host es Windows o Mac.
  2. Docker, cuando está instalado, está dentro de una máquina virtual Linux que se ejecuta en este sistema operativo host.[use this resource for more info]
  3. Las imágenes base de Linux dentro del contenedor docker luego usan esta máquina virtual de Linux como sistema operativo host y no las ventanas nativas o mac.
  4. En Linux, las imágenes base de Linux dentro del contenedor docker utilizan directamente el sistema operativo host, que es Linux en sí mismo sin ninguna virtualización.
  5. La imagen base dentro de Docker Container es solo la instantánea de esos programas y herramientas de distribución de Linux.
  6. La imagen base hace uso del kernel host (que en los tres casos es Linux).
  7. Por lo tanto, no hay virtualización dentro de un contenedor, pero la ventana acoplable puede usar una máquina virtual Linux principal única para ejecutarse. [the docker engine] dentro de eso.

Conclusión: cuando instala una imagen base dentro de la ventana acoplable, no hay un sistema operativo adicional instalado dentro del contenedor, sino que solo se crea la copia del sistema de archivos con un mínimo de programas y herramientas.

De las mejores prácticas de Docker:

Siempre que sea posible, utilice los repositorios oficiales actuales como base para su imagen. Recomendamos el Imagen de Debian ya que está muy estrictamente controlado y se mantiene extremadamente mínimo (actualmente por debajo de 100 mb), sin dejar de ser una distribución completa.

Lo que está pidiendo está completamente en contra de la idea de usar Docker Containers. Ustedes no quiero para tener alguna confiabilidad en su SO INVITADO. Si lo hace, su Docker no será portátil.

Cuando crea un contenedor, desea que se ejecute en ningún máquina que carreras Estibador. Ya sea CentoOS, Ubuntu, Mac o Microsoft Azure 🙂

Idealmente, no hay ventajas de que su sistema operativo de contenedor base tenga que hacer nada con su sistema operativo anfitrión.

Al final de la post puedes encontrar las explicaciones de otros creadores, tú aún puedes dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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