Diferencia entre paquetes e imágenes de Docker

Entiendo los PPA, pero Docker es nuevo para mí. ¿En qué se diferencian Docker y Dockerfiles de los Archivos de Paquetes Personales (PPA) de Ubuntu, en términos de administración de paquetes?

Los paquetes y las imágenes de contenedores son dos formas de distribuir software evitando conflictos, aunque lo hacen utilizando enfoques bastante diferentes.


Paquete son paquetes de archivos instalados por un gestor de paquetes como RPM en RHEL o APT en Ubuntu, que comprueba que varios paquetes utilizan bibliotecas compatibles, no utilizan los mismos nombres de archivo, etc., antes de escribir los archivos en un sistema de archivos compartido. Los usuarios pueden iniciar programas directamente.

Los paquetes generalmente provienen de repositorio, y depende de las personas que ejecutan los repositorios decidir qué paquete obtiene el control de cada nombre de archivo, puerto de red, ID de usuario del sistema, etc., así como las versiones de los programas que se empaquetan. Los paquetes se crean a partir de archivos de especificación que enumeran qué archivos deben incluirse.

PPA (Archivos de Paquetes Personales) permiten a individuos y pequeños grupos publicar sus propios paquetes, para software que aún no ha sido aceptado en los repositorios principales.


Contenedor son sandboxes en los que se puede ejecutar un programa o grupo de programas, aislados del resto del sistema. Gracias al soporte del kernel de Linux para espacios de nombres por proceso, solo pueden acceder a sus propios archivos (con un directorio raíz y una tabla de montaje separados), interfaces de red, etc. (Como una forma mucho más completa de chroot.)

Debido a que un contenedor solo puede acceder a sus propios archivos, hay images, paquetes de archivos que forman el estado inicial de un contenedor. No es necesario el mismo tipo de coordinación que con los paquetes, debido al sandboxing. Cada contenedor incluye las versiones particulares de las bibliotecas que necesita.

Ventana acoplable es un gestor de contenedores: inicia contenedores a partir de imágenes especificadas, configura sus interfaces de red, registra su salida, etc.

También administra imágenes: puede compilarlas a partir de scripts llamados Dockerfiles, y cargarlas y descargarlas desde el Centro de Docker, un conjunto de repositorios (en su mayoría) controlados por el usuario.


Los dos enfoques se pueden combinar: puede crear una imagen basada en una imagen mínima de RHEL o Ubuntu, e instalar paquetes dentro de ella usando yum o apt-get ejecutándose dentro de un contenedor.

Lo contrario también podría ser posible: un paquete podría instalar una imagen, aunque no he oído hablar de nadie que lo haga.

Y, por supuesto, la forma más fácil de instalar Docker es con un gestor de paquetes.

Del mismo modo, todavía hay roles para los sistemas de administración de configuración como Puppet y Chef: configurar contenedores en el interior o controlar qué contenedores se implementan en qué máquinas y conectarlos todos juntos.

Docker y PPAs son cosas completamente diferentes.

No tengo claro lo que estás preguntando. ¿Está preguntando acerca de los paquetes y contenedores como formas de distribuir software? La contenedorización y la virtualización como formas de aislar programas? El concepto de PPA vino de Ubuntu, pero ¿cómo es RHEL 7 específicamente relevante?

Decidí hacer esta pregunta porque alguien tenía una pregunta sobre dockers y cómo se administra la seguridad. PPA es algo así como un repositorio personal al que se puede acceder para la administración de paquetes, ¿no es así? Supongo que, más específicamente, ¿es una ventana acoplable más como una caja de arena con una aplicación o un conjunto de aplicaciones dentro de ella que se pueden administrar en general como un rpm? La pregunta que tengo se centra más en la gestión de paquetes.

Hola deltab, tu respuesta tenía más sentido después de leer sobre docker. Docker parece ser el concepto de módulo hecho más modular, portátil y más seguro (usted dijo “contenedorización y virtualización” y “aislamiento de programas”). ¿Cómo se gestionan los estibadores? Actualmente, las páginas de manual no parecen tener una buena sección para una ventana acoplable. Sería un yum provides * / docker …¿es el método para buscar y, finalmente, descargar una aplicación o un conjunto de aplicaciones de docker?

Sí, sus descripciones de PPAs y contenedores Docker son bastante precisas. (Tenga en cuenta que Docker es el nombre de un sistema que administra contenedores, así como de la empresa que lo fabrica.) De acuerdo, entonces su pregunta es más como “¿Cuál es la diferencia entre los paquetes y los contenedores Docker?”; Puedo responder a eso.

Tecnología que desplaza gran parte de la necesidad de chef y los servidores de administración de configuración como Bcfg2 para Linux paas necesitan de la apariencia de ti.

Sí, y la otra pregunta es ¿cómo administro los contenedores Docker? Estoy leyendo el sitio de Docker que Lain me dio.

@paulcube: Estoy editando su pregunta para enfocarla en paquetes e imágenes de contenedores. Creo que ya hay una pregunta que compara contenedores y máquinas virtuales.

¿Puede indicarme esa pregunta o decirme cómo la buscó? Gracias deltab.