tag run library docker vagrant virtualization docker-container

run - docker tag



¿Puedes explicar Docker con un ejemplo/caso práctico? (3)

Eche un vistazo a " cómo y por qué Spotify usa Docker " para un estudio de caso.

Para responder a tu última pregunta:

Incluso he visto ejemplos en los que se usa Docker dentro de Vagrant y todo eso, pero no entiendo cuáles son los beneficios de hacerlo en un sentido práctico; lo que significa que entiendo la diferencia entre las máquinas virtuales y los contenedores y la separación lógica que proporcionan estos últimos, pero ¿cuándo debo usar uno en lugar de otro y cuándo Docker dentro de Vagrant?

Docker se usa con frecuencia dentro de Vagrant porque no se ejecuta actualmente en Mac OSX (ver Requisitos del núcleo ), que es muy comúnmente utilizado por los desarrolladores.

Luego, para que su equipo de desarrollo trabaje en los mismos contenedores, genere y pruebe los productos en una computadora portátil y luego "en escala, en producción, en máquinas virtuales, metal abierto, clusters de OpenStack, nubes públicas y más", necesita Vagrant en su Mac OSX .

Dicho esto, aquí puede ver otro estudio de caso impresionante http://bit.ly/19h8gUk

He leído this y los documentos de introducción en Docker.io y me gusta el concepto que presenta. Pero, ¿puedes ayudarme a entenderlo un poco mejor? ¿Me puede dar algunos ejemplos prácticos y / o estudios de caso sobre cómo se usa Docker y cuándo tiene sentido usarlo?

Solo una nota al margen, recientemente comencé a usar Vagrant para distribuir una caja DEV preconfigurada a nuestro equipo de desarrollo (por lo que todos usamos el mismo sistema base). Incluso he visto ejemplos en los que se usa Docker dentro de Vagrant y todo eso, pero no entiendo cuáles son los beneficios de hacerlo en un sentido práctico; lo que significa que entiendo la diferencia entre las máquinas virtuales y los contenedores y la separación lógica que proporcionan estos últimos, pero ¿cuándo debo usar uno en lugar de otro y cuándo Docker dentro de Vagrant? (esta es una pregunta más específica, pero estoy más interesado en el panorama general como se describe en la primera pregunta anterior).


Hay un buen caso de uso del día de la ventana acoplable:

Despliegue automático de una pila java con Git y Jenkins. Usted introduce su código en su repositorio de git contenirezied. Activará una compilación de Jenkins, por lo que su aplicación web se empaquetará en un Docker de contenedores y será ejecutada por Docker.

https://www.youtube.com/watch?v=Q1l-WoJ7I7M


Participo en un esfuerzo por hacer que el software para hacer análisis de la ciencia esté más disponible para la comunidad de investigación. A menudo, el software en cuestión está escrito por un individuo o solo unos pocos sin la suficiente planificación para su reutilización, como que una persona en su propia computadora escriba un script de Python o un módulo de Matlab. Si el software funciona bien, a menudo a otros les gustaría probarlo ellos mismos ... pero en algunos casos puede ser un verdadero desafío replicar con éxito un entorno que no está documentado o es difícil de reimplementar.

Docker es una gran herramienta para ayudar a otros a reutilizar software como este, ya que es una barrera de entrada aún más baja que la escritura de un script Vagrant para instalar software en un entorno. Si le doy a una persona un contenedor Docker, ella puede hacer lo que quiera dentro de él (escribir código, instalar bibliotecas, configurar el entorno, etc. Cuando esté "listo", puede guardar una imagen y publicar la imagen en una Docker repositorio y decirle a otro investigador, "aquí está, simplemente inicie y ejecute esto ..."

También estamos considerando usar los contenedores como nuestra propia estrategia de gestión de la configuración para entregar y archivar software de producción ... al menos los componentes del lado del servidor.

También hemos trabajado en la escritura de scripts en Python y shell para ejecutar flujos de trabajo de procesamiento de datos de múltiples contenedores Docker. Una demostración que inventamos fue ejecutar OpenCV en una imagen para extraer rostros de personas, luego ImageMagick para recortar los rostros, y finalmente ImageMagick nuevamente para hacer un collage de todos los rostros. Construimos un contenedor para OpenCV y un contenedor para ImageMagick, luego escribimos una secuencia de comandos de Python para ejecutar una "ventana acoplable ..." en cada uno de los contenedores con los parámetros necesarios. La secuencia de comandos de Python se realizó utilizando el proyecto docker-py que funcionó bien para lo que necesitábamos de él.