No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es Docker?

15/20
Recursos

Aportes 25

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Soy acaso el unico que queda fascinado con lo complejo que se convierte programar, y que empieza el pensmaiento de, divide lo mas que puedas cada problema, osea, separan y separan hasta donde mas se pueda los entornos, para que no haya ningun problema a futuro.
No lo se usted but I think it is beautiful

Hola chicos! 😄
Docker

Es una herramienta que nos sirve para aislar entornos de ejecucion, eso lo hace con contenedores que tiene docker por detras.

Ejemplo de Docker

  • Supongamos que estás trabajando en un proyecto de aplicación web con un equipo de desarrolladores. Cada desarrollador tiene su propia computadora y cada uno está utilizando un sistema operativo diferente (Windows, MacOS o Linux). Además, cada uno de ellos tiene diferentes versiones de las herramientas y bibliotecas necesarias para desarrollar la aplicación.
  • Con Docker, puedes crear un contenedor que incluya todo lo necesario para ejecutar la aplicación, incluyendo el código, las herramientas y las bibliotecas. Luego, cada desarrollador puede ejecutar la aplicación en su propia computadora simplemente instalando Docker y ejecutando el contenedor. De esta manera, cada uno de los desarrolladores puede trabajar en el mismo entorno, sin importar el sistema operativo o las herramientas que tenga instaladas.
  • Cuando esté lista para desplegar la aplicación en producción, puedes subir el contenedor a un repositorio de Docker y luego ejecutarlo en cualquier servidor que tenga Docker instalado. De esta manera, puedes asegurarte de que la aplicación funcione de la misma manera en todos los entornos, desde el desarrollo hasta la producción.

Ahora si se viene lo chido!!

Les paso el Cheat Sheet perfecto para empezar en Docker:

https://collectednotes.com/barckcode/docker-cheat-sheet

Ya tengo certificado de Docker
Docker es una plataforma de código abierto que permite crear, distribuir y ejecutar aplicaciones de forma independiente del sistema operativo subyacente. Proporciona una forma eficiente y rápida de crear entornos aislados llamados contenedores, que encapsulan una aplicación y todas sus dependencias, incluyendo bibliotecas, frameworks y herramientas necesarias para su funcionamiento.

Algunos aspectos clave de Docker son:

Contenedores: Los contenedores son entornos ligeros y portátiles que permiten empaquetar una aplicación y sus dependencias en una unidad autónoma. Cada contenedor se ejecuta de manera aislada, lo que significa que no se ve afectado por el sistema operativo o las aplicaciones que se ejecutan en el host.

Imágenes: Una imagen de Docker es una plantilla o un conjunto de instrucciones que define cómo se debe crear un contenedor. Las imágenes son inmutables y se utilizan como base para crear y ejecutar contenedores.

Orquestación: Docker proporciona herramientas y características para administrar y orquestar contenedores a gran escala. Docker Swarm y Kubernetes son dos ejemplos populares de herramientas de orquestación que permiten administrar múltiples contenedores en múltiples nodos o servidores.

Portabilidad: Docker garantiza la portabilidad de las aplicaciones, lo que significa que un contenedor puede ejecutarse en cualquier entorno compatible con Docker sin problemas. Esto simplifica la implementación y la gestión de aplicaciones en diferentes entornos, ya sea en máquinas locales, servidores en la nube o en entornos de desarrollo y producción.

Eficiencia: Los contenedores de Docker comparten el núcleo del sistema operativo y solo incluyen las dependencias necesarias para ejecutar la aplicación. Esto los hace ligeros y rápidos de implementar, lo que permite un uso eficiente de los recursos del sistema.

En resumen, Docker es una tecnología de virtualización a nivel de sistema operativo que permite empaquetar, distribuir y ejecutar aplicaciones de forma independiente y eficiente en contenedores. Proporciona portabilidad, escalabilidad y aislamiento de aplicaciones, lo que lo convierte en una herramienta popular para la creación y administración de entornos de desarrollo, pruebas y producción.

¿Qué es Docker?

  • Docker utiliza una imagen del sistema operativo como base para las aplicaciones empaquetadas en contenedores. Esto permite que los contenedores sean ligeros y fáciles de distribuir, ya que solo incluyen lo necesario para ejecutar la aplicación y no todo el sistema operativo completo.

  • Docker también proporciona una capacidad adicional de abstracción y automatización de virtualización en el nivel de sistema operativo. Esto permite que los contenedores se ejecuten en cualquier que tenga Docker instalado, independientemente de la plataforma subyacente.

Tan pocos 13 comentarios? pero saben somos grandes por llegar hasta aquí, quien llegue hasta aquí felicidades y mucha suerte en tu camino como desarrollador ❤️.

También comparto un link en donde puedes profundizar en Docker

Para los que piensan profundizar más en Docker, les recomiendo el canal de PeladoNerd que habla bastante de Docker y de DevOps en general

Contexto Docker:

15. ¿Qué es Docker?

  • Herramienta para aislar entornos
  • Docker también aisla el entorno de ejecución con contenedores

Ahora si viene lo chido!!!

Mucho de escuchar esto, mucho de usarlo junto a mis mentores, pero nunca yo personalmente, ya llego la hora

Esto esta genial, Gracias Nico, fue justamente lo que dije que falto en clases anteriores, Genio!
Aquí tienes 5 razones por las que Docker es esencial: 1. **Portabilidad y Consistencia**: Docker encapsula una aplicación junto con todas sus dependencias, bibliotecas, y configuraciones en un contenedor. Esto garantiza que la aplicación funcionará de la misma manera en cualquier entorno, ya sea en un equipo de desarrollo, un servidor de pruebas o en producción, eliminando problemas de "funciona en mi máquina". 2. **Aislamiento de Aplicaciones**: Docker permite ejecutar múltiples aplicaciones en contenedores separados en la misma máquina, sin que interfieran entre sí. Cada contenedor tiene su propio entorno, lo que evita conflictos entre versiones de software o dependencias. 3. **Despliegue Rápido y Escalabilidad**: Docker permite desplegar aplicaciones rápidamente y escalar horizontalmente sin complicaciones. Puedes lanzar nuevas instancias de una aplicación en contenedores en cuestión de segundos, lo que facilita la respuesta a cambios en la demanda. 4. **Eficiencia de Recursos**: Los contenedores de Docker son ligeros y utilizan menos recursos que las máquinas virtuales tradicionales porque comparten el mismo sistema operativo base. Esto permite que más contenedores se ejecuten en la misma infraestructura, reduciendo los costos de hardware y mejorando la eficiencia. 5. **Integración con CI/CD**: Docker se integra perfectamente con flujos de trabajo de integración continua y despliegue continuo (CI/CD). Permite automatizar la construcción, prueba y despliegue de aplicaciones de manera confiable y reproducible, acelerando el ciclo de desarrollo y mejorando la calidad del software.
Docker es una herramienta fantástica, hay algo muy interesante acerca de Docker y es que es muy fácil desplegar un entorno completo con unos pocos pasos sin embargo hay que aprender muy claro conceptos como HDFS por lo tanto dejo este blog para revisar algunos conceptos básicos: <https://medium.com/@sudheer.barakers/container-magic-understanding-docker-and-its-basic-concepts-3f90433cdea1>

Estoy algo nervioso con el tema de docker. Es la primera vez que oigo de este lenguaje. Dicen que es un poco arriesgado. Pero que queda. Un verdadero programador arriesga para ser exitoso aunque eso cueste la vida de la compu.

¿Qué es un contenedor?
Un contenedor es un proceso aislado que se ejecuta en una máquina host que está aislada de todos los demás procesos que se ejecutan en esa máquina host. Ese aislamiento aprovecha los espacios de nombres del kernel y los cgroups.abrir_en_nuevo, características que llevan mucho tiempo en Linux. Docker hace que estas capacidades sean accesibles y fáciles de usar. En resumen, un contenedor:

Es una instancia ejecutable de una imagen. Puede crear, iniciar, detener, mover o eliminar un contenedor mediante la API o CLI de Docker.
Puede ejecutarse en máquinas locales, máquinas virtuales o implementarse en la nube.
Es portátil (y puede ejecutarse en cualquier sistema operativo).
Está aislado de otros contenedores y ejecuta su propio software, binarios, configuraciones, etc.
Si está familiarizado con chroot, piense en un contenedor como una versión extendida de chroot. El sistema de archivos proviene de la imagen. Sin embargo, un contenedor agrega aislamiento adicional que no está disponible cuando se usa chroot.
.
¿Qué es una imagen?
Un contenedor en ejecución utiliza un sistema de archivos aislado. Este sistema de archivos aislado lo proporciona una imagen, y la imagen debe contener todo lo necesario para ejecutar una aplicación: todas las dependencias, configuraciones, scripts, archivos binarios, etc. La imagen también contiene otras configuraciones para el contenedor, como variables de entorno, un comando predeterminado ejecutar y otros metadatos.

Aquí un video que aporta mas información de lo que es un Docker.

Bueno leyendo sobre Docker y usar actualmente Conda, la diferencia principalmente es que conda esta especializada para Data Science y sus ramas. Pero para el tema de subirla a la nube dado el caso que el poder de computo lo requiera no se si baste con un export. No se… en el siguiente curso de trabajo con Data Science expliquen. Las dos aíslan las versiones de python.

Seria mas que todo eso, porque si hablamos de ser ligeros miniconda es 10 veces menos pasada que conda.
Vamos a ver Docker 🐍🐧💪

Una teconologia bastante itneresante!

Docker es una plataforma de software que le permite crear, probar e implementar aplicaciones rápidamente. Docker empaqueta software en unidades estandarizadas llamadas contenedores que incluyen todo lo necesario para que el software se ejecute, incluidas bibliotecas, herramientas de sistema, código y tiempo de ejecución.

Cuando se desee subir un proyecto a la nube, nos hallamos en la situación de que no es suficiente solo con aislar los paquetes de cada proyecto, sino la versión de Python como tal (que antes era global para todos los proyectos en el computador).

Así pues, Docker aísla no solo el proyecto y sus dependencias, sino también el entorno de ejecución con la versión correspondiente de Python; esto es posible a través de los contenedores ya mencionados.

Al fin lo que quería…
Bueno justo estoy teniendo unos problemas entre entornos virtuales y docker, tomé el curso por este módulo.