CursosEmpresasBlogLiveConfPrecios

Conceptos para imágenes productivas

Clase 23 de 25 • Fundamentos de Docker 2018

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Qué aprenderás sobre Docker

    Qué aprenderás sobre Docker

    03:11 min
  • 2
    Problemáticas del desarrollo de software profesional

    Problemáticas del desarrollo de software profesional

    06:49 min
  • 3
    Qué es Docker: containarization vs virtualization

    Qué es Docker: containarization vs virtualization

    00:00 min

Primeros pasos

  • 4
    Cómo instalar Docker

    Cómo instalar Docker

    10:13 min
  • 5
    Primeros pasos: Hola mundo y Docker Engine

    Primeros pasos: Hola mundo y Docker Engine

    03:44 min
  • 6
    Contenedores

    Contenedores

    04:54 min

Aprendiendo a usar los contenedores

  • 7
    Explorar el estado de docker

    Explorar el estado de docker

    08:42 min
  • 8
    El modo interactivo

    El modo interactivo

    08:04 min
  • 9
    Ciclo de vida de un contenedor

    Ciclo de vida de un contenedor

    07:34 min
  • 10
    Exponiendo contenedores al mundo exterior

    Exponiendo contenedores al mundo exterior

    08:20 min
  • 11
    Datos en Docker

    Datos en Docker

    10:34 min
  • 12
    Datos con Docker: Volumes

    Datos con Docker: Volumes

    08:51 min

Imágenes

  • 13
    Conceptos fundamentales de Docker: imágenes

    Conceptos fundamentales de Docker: imágenes

    09:54 min
  • 14
    Construyendo nuestras propias imágenes

    Construyendo nuestras propias imágenes

    09:34 min
  • 15
    Comprendiendo el sistema de capas

    Comprendiendo el sistema de capas

    07:54 min

Desarrollando con Docker

  • 16
    Usando docker para desarrollar aplicaciones

    Usando docker para desarrollar aplicaciones

    06:57 min
  • 17
    Reto

    Reto

    00:31 min
  • 18
    Entendiendo el cache de layers para estructurar correctamente tus imágenes

    Entendiendo el cache de layers para estructurar correctamente tus imágenes

    09:16 min
  • 19
    Docker networking: colaboración entre contenedores

    Docker networking: colaboración entre contenedores

    08:21 min

Docker compose

  • 20
    Docker-compose: la herramienta todo-en-uno

    Docker-compose: la herramienta todo-en-uno

    08:38 min
  • 21
    Trabajando con docker-compose

    Trabajando con docker-compose

    06:41 min
  • 22
    Docker-compose como herramienta de desarrollo

    Docker-compose como herramienta de desarrollo

    14:53 min

Docker Avanzado

  • 23
    Conceptos para imágenes productivas

    Conceptos para imágenes productivas

    Viendo ahora
  • 24
    Manejando docker desde un contenedor

    Manejando docker desde un contenedor

    09:41 min

Cierre

  • 25
    Cierre del curso

    Cierre del curso

    01:19 min
Tomar el examen del curso
    Juan Sebastian Otero

    Juan Sebastian Otero

    student•
    hace 6 años

    La verdad me costo un poco entender el concepto (y eso que Guido es un crack). Tuve que leer un poco para entenderlo mejor, les puede ayudar bastante este articulo de medium y este video de googel cloud.

    Construcción de imágenes Docker en múltiples etapas

    Construir contenedores pequeños (Buenas Prácticas de Kubernetes)

      Luis Fernando Pedroza Taborda

      Luis Fernando Pedroza Taborda

      student•
      hace 6 años

      Muchas gracias por el aporte, es muy util.

      Felipe Uzcategui

      Felipe Uzcategui

      student•
      hace 5 años

      Excelente aporte, muchas gracias!!

    Alvaro Gonzalez

    Alvaro Gonzalez

    student•
    hace 7 años

    Hola, e usado doker para el backend, donde agrego una base de datos mysql y el codigo lo agrego en la maquina no en un docker image, esta bien esta practica, o deberia agregar todo en imagenes de docker.
    Ejemplo:
    docker imagen de mysql
    docker image de node, y otros frameworks, (código)
    docker image de nginx

    Cual es la arquitectura que me propones, y no me digas que depende…, saludos.

      John Andrey Serrano

      John Andrey Serrano

      student•
      hace 7 años

      Todo en imágenes tal cual como dices un container por cada cosa es lo mas recomendable.

      Mauro Gomez

      Mauro Gomez

      student•
      hace 7 años

      desafortunadamente depende. yo por mi parte tengo el backend en docker desplegado en amazon el front en S3 de amazon la base datos utilizo los servicios de amazon. entonces lo único que tengo en docker es el back que no me provee amazon como servicio.

      depende de la arquitectura como tal y de las herramientas que tengas, la idea al usar docker te ahorres inconvenientes y no por el contrario agregar complejidades innecesarias

    Sergio Alexander Florez Galeano

    Sergio Alexander Florez Galeano

    student•
    hace 7 años

    Tengo ya tiempo trabajando con docke ry no conocía la construcción de imágenes con docker multistage build.

    Un gran aprendizaje que me llevo de está clase 😃

    Carlos Andrés Charris S

    Carlos Andrés Charris S

    student•
    hace 7 años

    .dockerignore
    Nos permite excluir archivos para que no hagan parte del build

      John Vera

      John Vera

      student•
      hace 7 años

      no hay sus comentarios en el video anterior

      Saludos

    Jorge Hernández

    Jorge Hernández

    student•
    hace 6 años

    ¿Cómo es que la imagen es mas liviana?

    Node Diez tiene un tamaño de 674MB platziapp tiene un tamaño de 680MB

      Jesús Enrique Quevedo Torres

      Jesús Enrique Quevedo Torres

      student•
      hace 6 años

      Porque platziapp ocupa por dentro Node, en realidad lo que pesa la app es 680(platziapp)- 674(Node)= 6Mb(Tamaño de solo el código de platziapp)

      Gedward Romo

      Gedward Romo

      student•
      hace 6 años

      la explicación la hace en el ultimo minuto del video, NodeJS se almacena en Docker Hub, porque la vas a traer cuando construyas la imagen.

    Wilson Fernando Antury Torres

    Wilson Fernando Antury Torres

    student•
    hace 6 años

    documentación multi stage builds: https://docs.docker.com/develop/develop-images/multistage-build/

    Edgar Moises Valdez Faria

    Edgar Moises Valdez Faria

    student•
    hace 7 años

    Buenas, el multi stage puede usarse partiendo de Distintas imágenes ? Por ejemplo, el test inicia con "FROM node" y el de producción inicia con "FROM nginx"

      Diego Forero

      Diego Forero

      Team Platzi•
      hace 7 años

      Si es posible, en la documentación oficial https://docs.docker.com/develop/develop-images/multistage-build/ muestran un ejemplo iniciando con una imagen de go y luego siguen con una de alpine copiando solo el archivo compilado de Go, en tu caso sería algo diferente, porque la imagen que creas debe tener tanto node para que ejecute tu aplicación como la nginx para el servidor web. Creo que la mejor opción es crear una imagen custom que para el segundo stage que tenga tanto node como nginx.

    Juan Carlos Gómez Samacá

    Juan Carlos Gómez Samacá

    company_admin•
    hace 7 años

    Hola gente, que pasa si por ejemplo se presenta un fallo y el proceso de node index.js se detiene?? se reinica? o se crea una instancia nueva?? como es ese proceso?

      Angel Hernandez

      Angel Hernandez

      student•
      hace 7 años

      Durante el tiempo en el que he trabajado con NodeJS he observado que el mayor problema es mantener vivo el servidor tras un error inesperado, cuando sucede, tu api o lo que tengas montado en node se apaga.

      Para hacer frente a esto aparecieron algunas herramientas como Forever o Nodemon que reinician tu "node ...js", aun asi, la mejor practica para evitar que tu servicio se apague tras un error, es saber capturar cada posible error con su respectivo catch.

      Edwar Baron

      Edwar Baron

      Team Platzi•
      hace 7 años

      Hola, depende de lo que configures, como dice @angel998, puedes usar algo como Forever dentro del contenedor para evitar que el mismo se detenga, y el mismo Forever o reinicie.

      Pero docker como tal, si maneja politicas para reiniciar el contenedor, mira la doc, puedes poner algo como: --restart always.

    José de Jesús Uscanga Molina

    José de Jesús Uscanga Molina

    student•
    hace 6 años

    Dejo mi ejemplo , creo se puede mejorar y agregar mas stages

    # Construimos la base de la imagen FROM node:10.16-alpine AS build EXPOSE 3000 COPY package*.json ./ RUN npm install # Imagen a producción FROM build WORKDIR /home/node/app COPY --from=build node_modules node_modules COPY . . CMD node index.js
    Masrtin Gutierrez

    Masrtin Gutierrez

    student•
    hace 5 años

    Porque el builder tiene dos npm install, uno para desarrollo y otro para producción? Entiendo que la idea es para el ambiente productivo la imagen quede con solo lo necesario para el funcionamiento y en este caso en particular no tener los test en la imagen. ¿Pero que se busca con esos npm install diferentes?

    Wilson Fernando Antury Torres

    Wilson Fernando Antury Torres

    student•
    hace 6 años

    Deberíamos cambiar el comando de build del archivo de docker-compose.yml? o se trabaja la aplicación y cuando estemos listos para correr test y crear la imagen definitiva de producción hacemos el build con el archivo production.Dockerfile? Gracias

    Herny Franklin

    Herny Franklin

    student•
    hace 5 años

    Algun ejemplo de build en docker con maven??

    Ezequiel saldaña

    Ezequiel saldaña

    student•
    hace 6 años

    ¿El copy from builder es solo una excusa para ejecutar la prueba y que no queden sus archivos en la imagen productiva?

    porque no entiendo para qué sirve traerme el index.js de builder

      William Schnaider Torres Bermon

      William Schnaider Torres Bermon

      student•
      hace 5 años

      La idea es dividir responsabilidades evitando que archivos innecesarios queden en la imagen final.

      Luis Fernando Zarazua Aguilar

      Luis Fernando Zarazua Aguilar

      student•
      hace 5 años

      Según entiendo al tener el builder se tiene como un contenedor intermedio que terminando la compilación desaparecerá de ahí, se extrae el código propio del proyecto que es el index.js que no está en el contenedor final (segunda etapa) hasta que se realiza esa copia pues es un contendor nuevo (sin archivos mas que los de node 10), si no se copia el index no se tendría ese archivo y por ende no correria el servidor. En conclusión se crea un contenedor para hacer pruebas, se crea un contenedor para solo guardar código productivo, se rellena ese contenedor con solo lo productivo, se elimina el contenedor de pruebas, se publica la imagen del contenedor productivo. Asi lo entendí yo.

    Felipe Jurado Murillo

    Felipe Jurado Murillo

    student•
    hace 6 años

    Quien me podria explicar la variable builder?

      Andrés Alberto Godínez Cabrera

      Andrés Alberto Godínez Cabrera

      student•
      hace 5 años

      Es un alias de la imagen como en base de datos o clases asignas un alias

      William Schnaider Torres Bermon

      William Schnaider Torres Bermon

      student•
      hace 5 años

      Te recomiendo visitar la documetación.

    leonardo Oteca

    leonardo Oteca

    student•
    hace 6 años

    Por que en el archivo de dev correr primero el npm install de las dependencias de produccion y despues las de development? si es desarrollo no deberia ser todo de una?

      Diego Forero

      Diego Forero

      Team Platzi•
      hace 6 años

      Es el orden lógico ya que las dependencias de producción son requeridas también en desarrollo, las de desarrollo solo es necesario en el entorno de desarrollo, por eso se hace de esa manera.

    Wilson Fernando Antury Torres

    Wilson Fernando Antury Torres

    student•
    hace 6 años
    • Usar .dockerignore para evitar copiar archivos innecesarios a la imagen productiva.
    Mauro Gomez

    Mauro Gomez

    student•
    hace 7 años

    Multi stage build

    john fredy quimbaya orozco

    john fredy quimbaya orozco

    student•
    hace 7 años

    he aprendido mucho de docker, ahora toca colocarlo en practica.

    Jose Ramos

    Jose Ramos

    student•
    hace 6 años

    Docker multi-stage build

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads