Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Curso de Docker

Curso de Docker

Guido Vilari帽o

Guido Vilari帽o

Virtualizaci贸n

4/33
Recursos

Aportes 92

Preguntas 22

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

A diferencia de una m谩quina virtual, que es una abstracci贸n del hardware y emula toda una computadora (o servidor), un contenedor es una abstracci贸n del software y 茅ste puede empaquetar el c贸digo, el runtime necesario y las dependencias de una aplicaci贸n

Resumen de la clase

Virtualizacion
Permite atacar en simult谩neo los tres problemas del desarrollo de software profesional.

Problemas de la virtualizacion

  • PESO: En el orden de los GBs. Repiten archivos en com煤n. Inicio lento.
  • COSTO DE ADMINISTRACION: Necesita mantenimiento igual que cualquier otra computadora.
  • MULTIPLES DE FORMATO: VDI, VMDK, VHD, raw, etc

Containerizaci贸n
El empleo de contenedores para construir y desplegar software.

  • Flexibles
  • Livianos
  • Portables
  • Bajo acoplamiento
  • Escalables
  • Seguros

Virtualizacion vs Containerizaci贸n

  • Virtualizaci贸n: A diferencia de un contenedor, las m谩quinas virtuales ejecutan un sistema operativo completo, incluido su propio kernel.
  • Containerizaci贸n: Un contenedor es un silo aislado y ligero para ejecutar una aplicaci贸n en el sistema operativo host. Los contenedores se basan en el kernel del sistema operativo host (que puede considerarse la fontaner铆a del sistema operativo), y solo puede contener aplicaciones y algunas API ligeras del sistema operativo y servicios que se ejecutan en modo de usuario.

Contenedores馃殺

Un contenedor la unidad logica mas importande de docker que permite encapsular las dependencias de un proyecto en un entorno aislado, con esto puedes conseguir resolver el problema de 鈥淏ut it works in my machine鈥 ya que te permite crear una especie de maquina virtual y pas谩rsela a tus compa帽eros o colocarlo en un servidor para el despliegue de manera f谩cil.

隆鉁婣lerta! Puedes ver a un contendor como una maquina virtual pero eso no significa que lo sea, una maquina virtual puede llegar a se muy similar debido a sus funcionalidades como el aislamiento de procesos.

Entonces鈥 驴cu谩l es el beneficio de usar contenedores en lugar de maquinas virtuales?

El mayor beneficio es que los contenedores de Docker est谩n en el nivel de los MB eso nos da ventajas en el consumo de recursos, ya que estos corren compartiendo el host del kernel de Linux, por otro lado las maquinas virtuales son un sistema operativo(O.S) con sus propias apps que corre sobre el tuyo usando virtualizacion y que consume muchos recursos en el nivel de los GB. Una mejor forma de ver esto es observando la arquitectura de los contendores y de las maquinas virtuales

Containers Vs Maquinas virtuales

Los beneficios de usar contenedores incluyen:

  • 脕gil creaci贸n y despliegue de aplicaciones: Mayor facilidad y eficiencia al crear im谩genes de contenedor en vez de m谩quinas virtuales.
  • Desarrollo, integraci贸n y despliegue continuo: Permite que la imagen de contenedor se construya y despliegue de forma frecuente y confiable, facilitando los rollbacks pues la imagen es inmutable.
  • Separaci贸n de tareas entre Dev y Ops: Puedes crear im谩genes de contenedor al momento de compilar y no al desplegar, desacoplando la aplicaci贸n de la infraestructura.
  • Observabilidad: No solamente se presenta la informaci贸n y m茅tricas del sistema operativo, sino la salud de la aplicaci贸n y otras se帽ales.
  • Consistencia entre los entornos de desarrollo, pruebas y producci贸n: La aplicaci贸n funciona igual en un laptop y en la nube.
  • Portabilidad entre nubes y distribuciones: Funciona en Ubuntu, RHEL, CoreOS, tu datacenter f铆sico, Google Kubernetes Engine y todo lo dem谩s.
  • Administraci贸n centrada en la aplicaci贸n: Eleva el nivel de abstracci贸n del sistema operativo y el hardware virtualizado a la aplicaci贸n que funciona en un sistema con recursos l贸gicos.
  • Microservicios distribuidos, el谩sticos, liberados y d茅bilmente acoplados: Las aplicaciones se separan en piezas peque帽as e independientes que pueden ser desplegadas y administradas de forma din谩mica, y no como una aplicaci贸n monol铆tica que opera en una sola m谩quina de gran capacidad
  • Aislamiento de recursos: Hace el rendimiento de la aplicaci贸n m谩s predecible.
  • Utilizaci贸n de recursos: Permite mayor eficiencia y densidad.

Algo en mi mente hizo PFFFFFF, se destaparon muchas ideas y soluciones Gracias a lo que acabo de escuchar aqu铆. Verdaderamente que docker es una maravilla, no ten铆a dudas de esto, pero esta explicaci贸n est谩 muy genial. Cultura general para todos este curso.

Otra manera como yo lo explico, es comparar:
馃悩 vs 馃悁
A ese nivel esta la comparaci贸n de VMs vs Docker.

<h1>Virtualization</h1>

Virtualization creates a simulated computing environment, it often includes versions of operating systems, and storage devices.

Virtual Machines

A virtual machine is a computer file or software that is created within a computing environment called the host. It is capable of running applications like a separate computer, creating operating system backups, and more. Some problems with VMs are the administration and maintaining cost, the weight of files, the repetition of a lot of files (Operating System).

Containers

Docker mitigates the previous problems by the usage of containers. Containers refer to lightweight, executable package of a piece of software. It contains all the libraries, configuration files, dependencies, and other parts to operate the application. Docker is no more than a running process, with some added features that keep it isolated from the host and from other containers.

Containers and Virtual Machines

A container shares the kernel of the host machine with other containers. It runs a discrete process, taking no more memory than any other executable. By contrast, a virtual machine runs a full operating system with virtual access to host resources through a hypervisor.

Virtualizaci贸n.

Es la versi贸n virtual de alg煤n recurso tecnol贸gico ya sea hardware, software, el concepto de una m谩quina ETC.

Contenedor 馃殺馃摝

A diferencia de la virtualizaci贸n de una VM las cu谩l es la versi贸n virtual de una m谩quina, computador o servidor. Un contenedor solamente virtualiza lo estrictamente necesario para que el c贸digo sea ejecutado.

El concepto de contenedores nace de un problema de la industria te transporte de mercanc铆a mar铆tima, en el cual anteriormente era muy dif铆cil transportar mercanc铆a por lo cual se crearon containers los cuales facilitaron el transporte de las art铆culos de una manera m谩s segura que los m茅todos empleados en esa 茅poca.

al usar containers su principal uso es la construcci贸n y despliegue del software.

Ventajas de los contenedores

  • flexibles: cualquier aplicaci贸n que quieras meter en un contenedor se puede meter en un contenedor.
  • livianos: reutilizar kernel para ejecutar el c贸digo sin necesidad de tener un sistema operativo completo.
  • portables: se pueden ejecutar en cualquier m谩quina, tranquilo est谩n dise帽ados para eso.
  • bajo acoplamiento: tiene todo lo necesario para correr el c贸digo que est谩 dentro de s铆 mismo sin necesidad de afectar a otros contenedores.
  • escalables: se pueden crear varios contenedores sin el temor de que esto afecte el rendimiento o funcionamiento de los mismos.
  • seguros: solo puede acceder a lo necesario para ejecutar el c贸digo. Un contenedor no puede acceder a otro contenedor, ni al sistema operativo que lo ejecuta.

Ya me hypeo docker xD Se me hace curioso que usa el mismo Kernel del sistema operativo, pero eso me hace pensar que necesito construir la aplicaci贸n pensando en el Sistema Operativo destino 馃

Ya con la explicaci贸n de los contenedores y los cargueros queda muy claro el porqu茅 del logo de Docker 馃槄

Virtualizaci贸n

Una m谩quina virtual nos permite tener varios ordenadores virtuales ejecut谩ndose sobre el mismo ordenador f铆sico.
En Inform谩tica, la virtualizaci贸n es la creaci贸n a trav茅s de software de una versi贸n virtual de alg煤n recurso tecnol贸gico, como puede ser una plataforma de hardware, un sistema operativo, un dispositivo de almacenamiento o cualquier otro recurso de red.En los 谩mbitos de habla inglesa, este t茅rmino se suele conocer por el numer贸nimo 鈥渧12n鈥.

Dicho de otra manera, se refiere a la abstracci贸n de los recursos de una computadora, llamada Hypervisor o VMM (Virtual Machine Monitor) que crea una capa de abstracci贸n entre el hardware de la m谩quina f铆sica (host) y el sistema operativo de la m谩quina virtual (virtual machine, guest), dividi茅ndose el recurso en uno o m谩s entornos de ejecuci贸n.

Fuente: Wiki

Hola!

Les comparto un buen resumen del tema realizado por joaquinaraujo

https://platzi.com/contributions/guia-del-curso-de-docker/

Saludos

Virtualizaci贸n: es la version virtual de algun recurso. Es lo que permite atacar los tres grandes problemas del SW convencional.

Maquinas virtuales:
1- Problemas:
- Peso: se repitten archivos comunes, inicio lento, orden de los gb.
- Costo de administracion: necesita mantenimiento.
- Multiples formatos: tienen distintas formas de empaquetar el SW.

Estos problemas con Docker, desaparecen porque utiliza contenedores.
驴Qu茅 es un contenedor?
forma estandar

  • Containainerizaci贸n: empleo de contenedores para construir y desplegar SW.
  • Ventajas:
    • Flexibles: cualquier aplicacion se podra meter en un contenedor.
    • Livianos
    • Portables
    • Bajo acoplamiento: son autocontenidos, tiene todo lo que necesita para correr. No compite con otros contenedores, son independientes.
    • Escalables
    • Seguros

Contenedores vs VMs

  • Contenedores: tiene basicamente el codigo de app y binarios, de pone por debajo docker
  • VMs: ademas de los binarios y codigo, usan el sistema operativo.

haciendi la analogia del puerto para usar docker, se neceita:

  • un puerto estandarizado para embarcar
  • un medio estandarizado para trasportar
  • un puerto estandarizado para desembarcar

y es justo lo que docker hace:

  • construir (embarcar)
  • distribuir (trasportar)
  • ejecutar (desembarcar)

Los ejemplos que se dan para cada explicacion es algo excelente!

Llegu茅 a este curso por que necesito aprender sobre Docker y el curso que me pusieron en el trabajo esta super feo; conf铆o totalmente en Platzi y este curso se ve super prometedor 馃挄

Estoy emocionada 鉂わ笍

La 煤ltima era de abstracci贸n es Serverless. Sin administrar Servidores, puedes meter tu c贸digo en un lado y ese c贸digo llama a funciones de otro c贸digo para poder funcionar. Al final del mes, solo pagas por cuantas veces tu c贸digo ha sido ejecutado. Maravilloso, despu茅s de Docker. 馃挜

  • Virtualizaci贸n, Son equipos ejecutando dentro de otra.
  • Las Mv, son pesadas, virtualizan toda OS, son de administraci贸n costosa, son lentas al momento de inicializarlas, incia todo el OS.
  • Los contenedores son agrupaciones de procesos que se encuentran aislados.
  • Los contenedores son flexibles, livianos, portables, bajo acoplamiento, escalables y seguros.
  • Son vers谩tiles, ya que son ligeras y contienen todas las dependencias para su ejecuci贸n, garantizando su ejecuci贸n en todos lados.

Con Docker se puede crear una red, la cual permitir谩 la comunicaci贸n entre dos contenedores para un objetivo en com煤n. Logre hacer esto para crear un contenedor Jenkins y SonarQube y implemente esta red para la comunicaci贸n entre s铆 y su versatilidad, agilidad y r谩pida ejecuci贸n me permite trabajar de una manera mas segura y confiable.

Esta clase no te imaginas la falta que me hac铆a para terminar de entender la justificaci贸n de dockerizaci贸n sobre virtualizaci贸n

Qu茅 es Docker? Docker Permite resolver problemas de construir, distribuir y ejecutar software en diferentes plataformas.

Containarization: un est谩ndar para llevar algo dentro. Agrupadores de procesos.

Vers谩tiles:
En el orden de los MB
Tienen todas las dependencias que necesitan para funcionar correctamente.
Funcionan igual en todos lados.

Eficientes:
Comparten archivos simult谩neos con otros contenedores.
Solo se ejecutan procesos, no un SS.OO completo.

Aislados:
Lo que pasa en el container queda en el container.
No pueden alterar su entorno de ejecuci贸n (a menos que expl铆citamente se indique lo contrario)
Virtualization: es una imagen o archivo que contiene informaci贸n dentro. Por lo general son pesadas de administraci贸n costosa y son lentas.

Pesadas:
En el orden de los GB
Muchas VMs en el mismo host suelen repetirse en lo que contienen
Administraci贸n costosa:
Una VM tiene que ser administrada como cualquier otra computadora: patching, update, etc
Hay que administrar la seguridad interna entre apps

Lentas:
Correr nuestro c贸digo en una VM implica no solo arrancar aplicaciones, sino tambi茅n esperar el boot de la VM en s铆.

Contenedores
Un contenedor es un silo aislado y ligero para ejecutar una aplicaci贸n en el sistema operativo host. Los contenedores se basan en el kernel del sistema operativo host (que puede considerarse la fontaner铆a del sistema operativo), y solo puede contener aplicaciones y algunas API ligeras del sistema operativo y servicios que se ejecutan en modo de usuario.
Virtualizaci贸n
A diferencia de un contenedor, las m谩quinas virtuales ejecutan un sistema operativo completo, incluido su propio kernel.

No se si sere el unico, pero a mitad de la clase me quieria comprar un camiseta de docker.

馃 Virtualizaci贸n

Ideas/conceptos claves

Virtualizaci贸n

Es la versi贸n virtual de alg煤n recurso tecnol贸gico, como (鈥) hardware, un sistema operativo, un dispositivo de almacenamiento o (鈥) recurso de red.

M谩quina virtual

Es un software que simula un sistema de computaci贸n y puede ejecutar programas como si fuese una computadora real.

Containerizaci贸n

Es el empleo de contenedores para construir y desplegar software.

Apuntes

  • Virtualizar permite atacar en simult谩neo los tres problemas del desarrollo de software profesional
  • Si bien una buena aproximaci贸n fue las m谩quinas virtuales, tienen varios problemas

Problemas de las VMs

  • Peso
    • En el orden de los GBs
    • Repiten archivos en com煤n
    • Inicio lento
  • Costo de administraci贸n
    • Necesita mantenimiento igual que cualquier otra computadora (actualizaciones, instalaciones, etc.)
  • M煤ltiples formatos
    • VDI, VMDK, VHD, raw, etc.

Contenedores

  • Docker implementa contenedores
  • Se puede entender los contenedores como la analog铆a del transporte de hace muchos a帽os
    • Transportar algo grande como un tren era dificultoso porque al llenar a un barco, dicho tren se deb铆a desarmar para que entre en el barco. Siempre est谩 la posibilidad de da帽ar el producto, ya que al manipular el mismo se pod铆a romper.
    • En la actualidad se utiliza contenedores, existen barcos y puertos que est谩n dise帽ados y siguieron el est谩ndar de implementar contenedores.

Ventajas

  • Flexibles

    No importa que aplicaci贸n desees meter en un contenedor, b谩sicamente cualquier tipo de aplicaci贸n tiene la capacidad de ingresar en un contenedor.

  • Livianos

    Los contenedores reutilizan el kernel (La parte m谩s profunda del sistema operativo) de la m谩quina anfitriona (La m谩quina donde corre el contenedor) entre todos.

  • Portables

    Est谩n dise帽ados para correr de la misma manera en cualquier m谩quina. Construirlos localmente y ejecutarlos en un servidor no hay ning煤n problema.

  • Bajo acoplamiento

    Los contenedores son autocontenidos, es decir, que tiene todo lo necesario para correr lo que contiene y no importa otra cosa que haya afuera en el sistema operativo o en otros contenedores.

  • Escalables

    Es muy f谩cil crear uno o muchos contenedores a partir de uno. Con la garant铆a que el c贸digo va a ser igual.

  • Seguros

    Las herramientas que utilizan, se aseguran de que lo que necesita un contenedor solamente pueda acceder a lo que realmente necesita y que no pueda acceder a otras caracter铆sticas.

馃搶 **RESUMEN:** Una aproximaci贸n a la virtualizaci贸n fue las m谩quinas virtuales, pero Los contenedores resultan ser m谩s flexibles, livianos porque reutilizan partes del kernel de la m谩quina anfitriona, a diferencia de las m谩quinas virtuales, son portables, tiene bajo acoplamiento es decir que tienen todo lo necesario para correr, son escalables y son seguros.

Super, apenas ando aprendiendo sobre docker. Un amigo me dijo que lo instalara para correr una aplicaci贸n, pero no tengo ni idea de como usar bien docker y asi termine en este curso.

Cambiaria el nombre de 鈥減eso鈥 en los problemas de las VMs por recursos, ya que mas all谩 de las gb esto tambi茅n involucra procesamiento y ram, por ejemplo.

Es la versi贸n virtual de alg煤n recurso tecnol贸gico como alg煤n hardware, sistema operativo, un dispositivo de almacenamiento o recurso de red.

M谩quinas Virtuales

El objetivo de las m谩quinas virtuales es construir con alg煤n tipo de software una versi贸n virtual de una m谩quina. Un ejemplo es WSL2, el emulador de Microsoft para correr linux dentro de Windows.

Problemas de las Virtual Machines

  1. Peso.

    • En el orden de los GBs.
    • Repiten archivos en com煤n.
    • Inicio lento.
  2. Costo de administraci贸n.

    • Necesita un mantenimiento igual que cualquier otra computadora.
  3. M煤ltiples formatos

    • VDI, VMDK, VHD, raw, y muchos mas;

Todos estos problemas son solucionados pr谩cticamente desaparecen. Utilizando una solucion alternativa a las m谩quinas virtuales.

Docker y los Contenedores

Desarmar, almacenar, y reconstruir artefactos. Este es el problema del desarrollo de software, todo era muy ineficiente y riesgoso.

Esto es la estandarizaci贸n y eso propone Docker, emplear contenedores para construir y desplegar software. El objetivo es para cientos de miles de posibles tipos de software solo haya una sola soluci贸n.

Ventajas.

  • Flexibles. Toda aplicaci贸n se puede meter en un contenedor.
  • Livianos. Los contenedores comparten y reutilizan c贸digo que ya esta en el Kernell(c贸digo base) del sistema operativo.
  • Portables. Est谩n dise帽ados para correr igual en cualquier m谩quina.
  • Bajo acoplamiento. Son autocontenidos, tienen todo lo que necesitan y no les afecta que otros paquetes existan en el sistema operativo ni en otros contenedores.
  • Escalables. Es muy f谩cil tomar un mismo c贸digo para utilizarlo en otra m谩quina.
  • Seguros. Un contenedor solo puede acceder las cosas que necesita del sistema operativo, no puede acceder ni a otros contenedores ni a archivos de la m谩quina.

Conclusi贸n

Para concluir puedes ver como docker a diferencia de las m谩quinas virtuales, solo almacena los archivos y binarios necesarios en nuestra aplicaci贸n, mientras que las Virtual Machines almacenan tambi茅n archivos del sistema operativo.

Una analogia que me gusto es diferenciar entre un elefante y un rat贸n, as铆 es Docker.

Virtualizaci贸n

  • Problemas: peso/tama帽o, costo de administraci贸n, m煤ltiples formatos (VDI, VMDK, VHD)

Contenedores

  • Contenerizaci贸n: Empleo de contenedores para construir y desplegar software
  • Ventajas: flexibles, livianos, portables, bajo acoplamiento, escalables, seguros

驴cu谩l es el principal problema que intenta resolver la virtualizaci贸n?
Atacar en simultaneo los tres grandes problemas de la ingenier铆a del software.

Los contenedores son la estandarizaci贸n para construir y desplegar software.

Algunas de las ventajas de Docker son:

  • Flexibles
  • Livianos
  • Portables
  • Bajo acoplamiento
  • Escalables
  • Seguros
  1. Virtualizaci贸n

Definici贸n Virtualizaci贸n
En Inform谩tica, la virtualizaci贸n es la representaci贸n a trav茅s de software alg煤n recurso tecnol贸gico, esto recursos tecnol贸gicos pueden ser: hardware, sistemas operativos, dispositivos de almacenamiento o recursos de la red.
la virtualizaci贸n permite atacar en simult谩neo los problemas que se presentan en la etapa del desarrollo de software, es decir: en la Construcci贸n, distribuci贸n y Ejecuci贸n

Referencia:
https://es.wikipedia.org/wiki/Virtualizaci贸n
https://platzi.com/clases/2066-docker/32843-virtualizacion/ minuto 0:25 segundos

Caracter铆sticas de la virtualizaci贸n, problemas

  • PESO: Cuando virtualizamos fuera de docker normalmente: el peso est谩 en el orden de los GBs. Tambi茅n se repiten archivos en com煤n. Otro problema es que el es Inicio lento.

  • COSTO DE ADMINISTRACI脫N: Necesita mantenimiento igual que cualquier otra computadora.

  • M脷LTIPLES DE FORMATO, cada soluci贸n tecnol贸gica relacionada con la virtualizaci贸n tiene su propio formato y no es compatible entre s铆 por lo general algunos de estos formatos son VDI, VMDK, VHD, raw, etc

Definici贸n Container Docker, soluci贸n
Un contenedor es una unidad est谩ndar de software que empaqueta el c贸digo y todas sus dependencias para que la aplicaci贸n se ejecute de forma r谩pida y confiable de un entorno inform谩tico a otro. Una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicaci贸n: c贸digo, herramientas del sistema, bibliotecas del sistema y configuraciones

Referencia: https://www.docker.com/resources/what-container

Caracter铆sticas de los Containers de docker, soluci贸n
El empleo de contenedores para construir y desplegar software.

  • Flexibles, la mayor铆a de las aplicaciones pueden estar dentro de un contenedor.
  • Livianos, reutilizan el kernel de la m谩quina anfitriona y por este motivo reutilizan c贸digo.
  • Portables, est谩 dise帽ados para funcionar de la misma manera en cualquier m谩quina.
  • Bajo acoplamiento, un contenedor tiene todo lo que necesita para funcionar
  • Escalables, es m谩s c贸modo crear varias instancias de nuestros contenedores. para colocarlos en m煤ltiples servidores cdn.
  • Seguros, se asegura que las aplicaciones dentro de los contenedores puedan acceder a los recursos disponibles dentro de los contenedores.

Entonces Containerizaci贸n, Es el empleo de contenedores para construir y desplegar software. Cuando utilizamos contenedores los que hacemos es reutilizar el kernel de la m谩quina que hospeda nuestros contenedores, eso quiere decir que va a reutilizar varios c贸digos

Contenedores vs. VMs

  • El Contenedor contiene: c贸digo de la aplicaci贸n, binarios y librer铆as
  • La Virtualizaci贸n contiene: c贸digo de la aplicaci贸n, binarios y librer铆as y el sistema operativo

real que una GRAN ventaja de platzi sobre otras plataformas es la comunidad que comparte conocimiento en los comentarios. rifados!

Contenerizaci贸n es un paradigma diferente a virtualizaci贸n. Y ambos atacan problemas similares.

Ahora entiendo por qu茅 es tan importante saber de Docker!

Virtualizaci贸n: Versi贸n virtual de alg煤n recurso tecnol贸gico
- Permite atacar en simultaneo los tres problemas del desarrollo de software profesional

Problemas de las VMs
1. Peso (GB): Repiten archivos en com煤n
2. Rapidez: Primero tiene que arrancar la maquina y despu茅s ejecuta
3. Costo de adm.
4. M煤ltiples formatos: VDI, VMDK, raw, 鈥

Containerizaci贸n: El empleo de contenedores para construir y desplegar software
- Flexibles
- Livianos
- Portables
- Bajo acoplamiento
- Escalables
Seguros

[驴Qu茅 es la virtualizaci贸n? - Explicaci贸n de la virtualizaci贸n de la computaci贸n en la nube - AWS (amazon.com) En este post habla m谩s a fonde de las VMs ](https://aws.amazon.com/es/what-is/virtualization/)

Docker y las m谩quinas virtuales son dos tecnolog铆as de virtualizaci贸n que se utilizan para ejecutar aplicaciones en un entorno aislado. Sin embargo, existen algunas diferencias clave entre las dos tecnolog铆as que pueden afectar su elecci贸n.

Docker

Ventajas:
Uso de recursos m谩s eficiente
Arranque m谩s r谩pido
Mayor portabilidad
Desventajas:
No proporcionan aislamiento completo
Pueden ser m谩s dif铆ciles de configurar
M谩quinas virtuales

Ventajas:
Aislamiento completo
F谩cil de configurar
Desventajas:
Uso de recursos m谩s intensivo
Arranque m谩s lento
Menor portabilidad
Cuando usar Docker

Docker es una buena opci贸n para las siguientes situaciones:

Aplicaciones que requieren un uso eficiente de los recursos: Los contenedores Docker son mucho m谩s ligeros que las m谩quinas virtuales, por lo que pueden ejecutarse en equipos con menos recursos.
Aplicaciones que requieren un r谩pido arranque: Los contenedores Docker se pueden iniciar en cuesti贸n de segundos, mientras que las m谩quinas virtuales pueden tardar minutos.
Aplicaciones que requieren portabilidad: Las aplicaciones que se ejecutan en contenedores Docker se pueden ejecutar en cualquier entorno que admita Docker.
Cuando usar m谩quinas virtuales

Las m谩quinas virtuales son una buena opci贸n para las siguientes situaciones:

Aplicaciones que requieren un aislamiento completo: Las m谩quinas virtuales proporcionan un aislamiento completo entre las aplicaciones, lo que puede ser importante para aplicaciones que requieren un alto nivel de seguridad o que pueden interferir entre s铆.
Aplicaciones que requieren una configuraci贸n compleja: Las m谩quinas virtuales son m谩s f谩ciles de configurar que los contenedores Docker, especialmente para aplicaciones que requieren un sistema operativo personalizado o configuraciones espec铆ficas de hardware.

鈥 鈥淐orres el riesgo de ejecutar contenedores Docker con un aislamiento incompleto. Cualquier c贸digo malicioso puede acceder a la memoria de su computadora鈥︹ Vale la pena tomarse el tiempo para detallar los temas de seguridad. Me gustar铆a saber si Guido pude ayudarme a comprender mejor que tan vulnerable puede ser mi SO con el uso de contenedores.

En una m谩quina virtual se virtualiza todo el sistema operativo y disco duro, mientras que en un contenedor de Docker s贸lo el c贸digo y binarios necesarios para correr una aplicaci贸n. El kernel/OS es compartido entre contenedores.

En definitiva est谩 煤ltima afirmaci贸n es completamente cierta y tiene much铆simo potencial:

鈥淎 priori, la soluci贸n de contenedores, es una soluci贸n m谩s prometedora, m谩s simple y m谩s eficiente que la de las m谩quinas virtuales鈥

Emocionante aprender docker!

Es muy importante lo que esta diciendo, pero siento que se esta demorando mucho para explicar todo, pero nada malo, solo es un poco lento, pero todo genial

EL principal problema que resuelve la virtualizaci贸n es que permite atacar en simultaneo los tres (3) problemas del desarrollo del software profesional.

Hola comunidad 馃槃, seg煤n como yo lo veo, mientras las maquinas virtuales (VM) son una abstracci贸n de todo el hardware de una computadora (por ello pesa m谩s), un contenedor es la abstracci贸n del sistema operativo (OS) osea en su defecto es una forma de abstraer el software.

  • Si alguien tiene m谩s conocimiento del tema me gustar铆a saber si mi analog铆a es en mayor medida correcta.

驴Cu谩l es mejor?

La respuesta es que no hay tal cosa como mejor o peor, son herramientas y como tal son m谩s eficientes para ciertos trabajos dependiendo de lo que necesitemos hacer.

la virtualizacion ayuda a resolver los 3 problemas de la ing de software pero tambien tiene problemas ahi entra docker con dar una mejor solucion usando contenedores

Mucho mas Factibles y el acoplamiento y su start es genial que todo se contenga en una sola carpeta鈥

Los contenedores son como peque帽as burbujas donde podemos instalar todas aquellas dependencias de nuestra aplicaci贸n sin importar la infraestructura que haya debajo.

resumen:
la propuesta de docker es poder mejorar las maquinas virtuales

la propuesta es con un software crear una maquina

y su propuesta de valor es mejorarlo a partir de contenedores

Docker es muy interesante, lo dif铆cil para m铆 es definir bien lo que necesita el contenedor para poder trabajar, es decir puertos, variables de entorno, conexiones con otros contenedores, memoria persistente y definir rutas del c贸digo fuente.

Espero lograr todo eso en este curso.

Virtualizaci贸n definici贸n: Versi贸n virtual de alg煤n recurso tecnol贸gico, como hardware, un sistema operativo, un dispositivo de almacenamiento o un recurso de red.

La virtualizaci贸n permite atacar en simultaneo los tres problemas del desarrollo de software. (Puede hacerse mejor)

Problemas de las VMs:

  • Peso: En el orden de los GBs. Repiten archivos en com煤n. Inicio lento
  • Costo de administraci贸n: Necesita mantenimiento igual que cualquier otra computadora
  • M煤ltiples de formatos: VDI, VMDK, VHD, raw, etc.

Docker usa Contenedores, soluciona este problema para las personas.

Los contenedores nacen cuando se transportaban mercanc铆as, los desembarques de mercanc铆a no eran estandarizados.

En software containerizaci贸n es: el empleo de contenedores para construir y desplegar software.

Ventajas:

  • Flexibles
  • Livianos (Reutilizan el kernel entre todos, el c贸digo del sistema operativo)
  • Portables
  • Bajo Acoplamiento (Tienen todo para funcionar independientemente)
  • Escalables (Es muy f谩cil crear muchos contenedores iguales para escalar una soluci贸n)
  • Seguros (s贸lo accede a las partes del sistema que necesita acceder)

ventajas de los contenedores

Me gusta como el profesor explica este curso, va paso a paso y lenguaje sencillo

entendido a la perfeccion

Una joya de soluci贸n!

Excelente explicaci贸n estoy emocionado por docker

Diferencia entre Container y VM

Con raz贸n se habla tanto de Docker en el mundo del desarrollos鈥 Genial

Contenerizaci贸n: Construir y desplegar software:

Flexibles
Livianos
Portables: corren en cualquier m谩quina
bajo acoplamiento: no compiten entre s铆, no se afectan
escalables: ancho de banda, cuesta poco y es f谩cil
Seguros: herramientas que corren contenedores se asegura que solo accedan al contenedor, no a otros lados de la pc

gracias por el aporte

Hola a to@s, veo que los comentarios del curso son promedio de un a帽o.

Me estoy imaginando lo aliviados que se sintieron los desarrolladores cuando salio a la luz Docker, excelente clase.

Que iluminadora esta clase.

contenedores son flexibles, livianos, portables, bajo acoplamiento, escalables y seguros.

La virtualizaci贸n es un concepto que hace referencia a virtualizar el hardware con software (La capacidad y sus caracter铆sticas). Esto trae consigo 3 problemas principales: Peso, costo, multiples formatos. Estos problemas los resuelve Docker.

Containerization.

El empleo de contenedores para construir y desplegar software.
Pros

  • Flexibles
  • Livianos
  • Portables
  • Escalables
  • Bajo acoplamiento
  • Seguros

Con software construir un equipo con las caracter铆sticas que necesitamos

containerizaci贸n el empleo de contenedores para contruir y desplegar software

Muy buena clase

M谩quina virtual
Lentas
Hay que darles mantenimiento
Pesadas
Pesimas si necesitas varias
Contenedores
Flexibles
Livianos
Portables
Bajo acoplamiento
Escalables
Seguros

La virtualizaci贸n es la forma que tiene la industria del software de solucionar de alguna manera los problemas que mencionamos en la clase anterior.

La virtualizaci贸n es b谩sicamente la versi贸n virtual de alg煤n recurso tecnol贸gico, como hardware, un sistema operativo, un dispositivo de almacenamiento o recurso de red; en resumen, nos permite atacar en simult谩neo los tres grandes problemas del desarrollo del software profesional.

Es v谩lido recalcar que antes de Docker ya hab铆an soluciones de virtualizaci贸n (m谩quinas virtuales) con las cuales trabajar, pero algo muy importante de resaltar es que se pod铆a hacer mucho mejor, y es justamente eso lo que viene a proponer Docker.

La propuesta de una m谩quina virtual es construir con alg煤n software una versi贸n virtual de una m谩quina f铆sica. Sin embargo, este enfoque tiene varios problemas, y entre los m谩s resaltados est谩n:

  • Peso: En el orden de los GBs. Repiten archivos en com煤n (la m谩quina host y la m谩quina virtual; pueden haber varias m谩quinas virtuales con el mismo contenido), y tiene un inicio lento.
  • Costo de administraci贸n: Necesita mantenimiento al igual que cualquier otra computadora.
  • M煤ltiples formatos: VDI, VMDK, VHD, raw, etc.

Todos estos problemas que ocurren al trabajar con m谩quinas virtuales desaparecen con Docker, porque Docker usa una soluci贸n alternativa a la m谩quina virtual; Docker usa contenedores.

Esta es la propuesta de los contenedores. Cuando hablamos de contenerizaci贸n de software, de lo que estamos hablando es el empleo de contenedores para construir y desplegar software. Aunque no son contenedores de mercanc铆a mar铆timos, el concepto es el mismo: c贸mo hacemos para que en lugar de que haya miles de maneras distintas de transportar y construir software, haya una sola; este es el objetivo de los contenedores.

Y no s贸lo tiene el objetivo mencionado anteriormente, sino que tambi茅n tiene ventajas:

  • Flexibles: Sea cual sea la aplicaci贸n que estemos desarrollando, podremos implementarla dentro de un contenedor. Toda aplicaci贸n se puede desplegar en un contenedor.
  • Livianos: Los contenedores reutilizan el kernel (la parte m谩s profunda del sistema operativo de la m谩quina anfitriona) entre todos. Todos los contenedores que est茅n corriendo en una m谩quina van a reutilizar un mont贸n de c贸digo que ya est谩 disponible en el sistema operativo. S贸lo tendr铆amos que empaquetar nuestro c贸digo dentro del contenedor y no todo el sistema operativo necesario para correrlo.
  • Portables: Est谩n dise帽ados para correr de la misma manera en cualquier m谩quina. Construir el software en nuestra m谩quina local y ejecutarlo en el servidor ya no es un problema; est谩n dise帽ados para eso.
  • Bajo acoplamiento: Son auto-contenidos; es decir, tiene todo lo que necesita para poder correr el software que est谩 dentro.
  • Escalables: Es muy f谩cil y r谩pido crear diversos o muchos contenedores iguales, con la garant铆a de que va a tener el mismo comportamiento que el contenedor base.
  • Seguros: La herramientas que corren contenedores (como Docker) se aseguran de que un contenedor solamente pueda acceder a aquellas partes del sistema que necesita acceder y que no acceda a partes innecesarias.
    En pocas palabras, no soluciona una infinidad de problemas, aquellos problemas que est谩n desde el principio sigo XX en el comercio internacional.

Esquema de contenedores y esquema de m谩quinas virtuales:

  • Un contenedor tiene b谩sicamente el c贸digo de la aplicaci贸n, los binarios o librer铆as que necesita ese c贸digo para ejecutarse, y nada m谩s. La propuesta de Docker es ponerse por debajo de eso y ejecutar contenedores, qued谩ndose encima del sistema operativo anfitri贸n y de la infraestructura.
  • En el esquema de m谩quinas virtuales, tambi茅n van a tener el c贸digo de la aplicaci贸n, sus binarios y librer铆as; pero adem谩s va a tener un sistema operativo simulado o hu茅sped.
    Si corri茅ramos tres aplicaciones similares con m谩quinas virtuales en un ordenador que usen el mismo sistema operativo, mismos binarios y librer铆as, van a estar replicados tres veces; en cambio, en el esquema de Docker, no s贸lo no vamos a necesitar incluir el sistema operativo hu茅sped, sino que (si est谩n bien dise帽ados los contenedores) ni siquiera se replicaran las librer铆as y binarios.

En conclusi贸n, la soluci贸n de contenedores es una soluci贸n m谩s prometedora, m谩s simple y m谩s eficiente que la de las m谩quinas virtuales.

Virtualizaci贸n

Con muchas expectativas para este tema de docker, ojala sea bastante practico, orientado a lo usado hoy en d铆a鈥

Al estandarizar el codigo y usar recursos del kernel elimina muchas de las debilidades de las VM

Inicio de la explicaci贸n de contenedores.

Ya empiezo a entender las ventajas de docker, las maquinas virtuales tienden a ser mas lentas por el exceso de capas que existen para ejecutar un comando

Ey t煤, lee esto 馃槂
Los contenedores son los cracks por que son :

  • Flexibles

  • Livianos

  • Portables

  • Bajo acoplamiento

  • Escalables

  • Seguros

Un contenedor contiene por transitividad una M谩quina virtual y obviamente la mejora en cuanto a rendimiento y necesidad, pero una M谩quina virtual no necesariamente es un contenedor. Es decir, no es relaci贸n bidireccional, por lo cual es mucho mejor un contenedor.

MY NOTES FOR VIRTUALIZATION

Es la forma que tiene la industria del software de alguna los problemas que se hablaron en la clase anterior

鈥渧ersi贸n virtual de alg煤n recurso tecnol贸gico, como hardware, un sistema operativo, un dispositivo de almacenamiento o recurso de red鈥

Permite atacar en simultaneo los tres problemas del desarrollo de software profesional.

Problemas de las VMs

  • Peso

En el orden de los GBs. Repiten archivos en com煤n. Inicio lento

  • Costo de administraci贸n

Necesita mantenimiento igual que cualquier otra computadora

  • M煤ltiples formatos

VDI, VMDK, VHD, raw, etc.

Estos multiples problemas que tienen las maquinas virtuales con docker desaparece, porque docker utiliza una soluci贸n alternativa a la maquina virtual.

Contedores

Docker utiliza contenedores

analogia:

Un viaje al siglo 19, pensemos en el comercio internacional, explosi贸n de la revolucion industrial mundo estaba construyendo maquinas y herramientas en una parte del mundo y habia que enviarlas a otra parte del mundo, el mecanismo era barco y despu茅s talvez por tren

El problema que podemos ver en la imagen es que podemos ver la escena de un puerto donde hay gente que esta desembarcando mercanc铆as con una tela grande para poder adaptarse a la forma que tiene esa mercader铆a

Que lo que esta cargado no es igual talvez a lo que ya este en el piso y estamos bajando con una gr煤a las cosas poni茅ndolas en el piso para despu茅s descargarlas que es lo que finalmente va a llegar al destino o talvez hacia otro deposito

Entonces imaginamos que tenemos que transportar una nueva locomotora desde la fabrica que esta en europa hasta las vias de un ferrocarril que esta en america, la fabrica construye la locomotora y la lleva hasta el puerto por tren y podemos cargar entera una locomotora y talves no necesitemos la locomotora entera si no que la desarmamos

Entonces resulta que tienen forma distinta entonces tenemos que desarmarla para poderla transportar, cuando llegamos al puerto destino en america la grua que tenemos sirva pra bajar esas cosas tan pesadas???

Tendremos que hacer otra cosa para poder sacar estas piezas tan pesadas usando el ingenio y puede que llevemos mas de una locomotora que llevemos piezas mas pesadas a tres puertos distintos y en algunos puertos es mas f谩cil en otros es mas dif铆cil

Entonces ahi es donde llega todo el problema y ese que todo sea ineficiente porque si varian los productos que llevamos la manera en que debe ser el proceso de llevar cada cosa y descargarla va a ser mas complicado siendo esto variable siempre.

La solucion a esta problematica es el uso de contenedores, siendo piezas iguales nos facilita el manejo de lo que lleve por dentro aunque pese mas la maquina que hace el proceso de transporte y descarga lo soportara, entonces aun asi sus valores sean diferentes no habria inconvenientes.

Containerizacion

El empleo de los contenedores para construir y desplegar software

El objetivo de los contenedores que en ves de haya una sola forma de transportar las cosas, se emplea una sola ese es el objetivo de los contenedores.

Contenedores

  • Flexibles

No importa que aplicaci贸n quieras poner en un contenedor vas a poder hacerlo

  • Livianos

Porque los contenedores lo que hacen es reutilizar el carnel (la parte mas profunda del SO de la maquina anfitriona es decir donde corren los contenedores entre todos) entonces todos los contenedores que tengamos en una maquina van a reutilizar un monton de codigo que ya esta disponible en el SO

Yo solo tengo que empaquetar mi c贸digo y no solo el sistema operativo necesario para correr todo

  • Portables

Quiere decir que est谩n dise帽ados para correr de la misma manera en cualquier maquina

  • Bajo acoplamiento

Los contenedores son autocontenidos, un contenedor tiene todo lo que necesita para poder correr el software que esta adentro suyo y no le importa las cosas que haya en el SO o en otros contenedores no van a competir entre si

Y lo que haya dentro de un contenedor no va a afectar de ninguna manera a los dem谩s

  • Escalables

Es muy f谩cil agarrar un contenedor y si necesito adquirir mas ancho de banda en mi aplicaci贸n o salir de mas clientes es muy facil crear un contenedor igual o muchos contenedores iguales con la garantia de que el codigo va a ser igual, que va a funcionar igual que no va a ver ning煤n tipo de discrepancia y cuesta muy poco hacerlo es muy facil y rapido

  • Seguros

Porque las herramientas que corren contenedores se aseguran que un contenedor pueda acceder a aquellas partes del sistema que necesita acceder y que no pueda acceder a otras, otros contenedores o a la maquina anfitriona

Muy interesante esta soluci贸n, la verdad al momento me encuentro conociendo la herramienta y suena bien.

Contenedores.

  • Flexibles

  • Livianos

  • Portables

  • Bajo acoplamiento

  • Escalables

  • Seguros

Problemas de las Maquinas Virtuales

  • Peso
    En el orden de los GBs Repiten archivos en com煤n. Inicio lento
    **
  • Costo de administraci贸n**
    Necesita mantenimiento igual que cualquier otra computadora
    **
  • Multiples de formatos**
    VDI, VMDK, VHD, raw, etc

Virtualizaci贸n

鈥 Versi贸n virtual de alg煤n recurso tecnol贸gico, como (鈥) hardware, un sistema operativo, un dispotivo de almacenamiento o (鈥) recurso de red.

Nos permite atacar en simult谩neo los tres problemas del desarrollo de software profesional.

  • Desarrollo

  • Distribuci贸n

  • Ejecuci贸n

Tambi茅n se puede ver a la Contenerizaci贸n c贸mo virtualizaci贸n de procesos, donde se puede contrastar el menor peso que tienen comparado con la virtualizaci贸n de m谩quinas virtuales.

Hasta ahora he podido entender bien la definicion de contenedor y el porqu茅 es mejor usar estos en lugar de las VM.
Muchas gracias

Una maquina virtual requiere muchisimos mas recursos y por lo general no ofrecen una excelente experiencia, llegando a entorpeccer el proceso de desarrollo. En cambio un contenedor de Docker es unicamente es eso, un peque帽o contenedor que a diferencia de la MV este aprovecha el nuclero (kernel) de tu sistema operativo para ejecutar y montar ahi el contenedor.

Si est谩n bien dise帽ados 馃槂