CursosEmpresasBlogLiveConfPrecios

Dockerfiles

Clase 9 de 22 • Fundamentos de Docker 2017

Clase anteriorSiguiente clase

Contenido del curso

Bienvenido

  • 1

    Actualizaremos este curso pronto

    00:22 min

Introducción a Docker

  • 2
    Workshop:  Introducción a docker, ventajas y mitos

    Workshop: Introducción a docker, ventajas y mitos

    47:23 min
  • 3
    Introducción y fundamentos de Docker

    Introducción y fundamentos de Docker

    15:19 min
  • 4
    Contenedores y VMs

    Contenedores y VMs

    05:21 min
  • 5
    Instalación

    Instalación

    12:58 min
  • 6
    Docker Engine e Imágenes

    Docker Engine e Imágenes

    63:28 min
  • 7
    Preguntas y respuestas

    Preguntas y respuestas

    06:23 min

Dockerfiles y Volumenes

  • 8
    Workshop: Configuración avanzada del Docker Engine

    Workshop: Configuración avanzada del Docker Engine

    50:28 min
  • 9
    Dockerfiles

    Dockerfiles

    Viendo ahora
  • 10
    Volúmenes

    Volúmenes

    16:47 min
  • 11
    Preguntas y respuestas

    Preguntas y respuestas

    14:39 min

Redes multi-host y Docker Swarm

  • 12
    Workshop: Aspectos de seguridad en Docker

    Workshop: Aspectos de seguridad en Docker

    45:12 min
  • 13
    Redes

    Redes

    26:58 min
  • 14
    Docker Machine

    Docker Machine

    13:37 min
  • 15
    Docker Compose

    Docker Compose

    36:57 min
  • 16
    Multi-host y Docker Swarm

    Multi-host y Docker Swarm

    37:59 min
  • 17
    Preguntas y respuestas

    Preguntas y respuestas

    07:32 min

Contenido complementario

  • 18
    Optimizando el tamaño de las imágenes de Docker

    Optimizando el tamaño de las imágenes de Docker

    08:09 min
  • 19
    Utilizando Docker en mi proceso de integración continua

    Utilizando Docker en mi proceso de integración continua

    10:34 min
  • 20
    Haciendo backups de archivos con Docker

    Haciendo backups de archivos con Docker

    05:50 min
  • 21
    Buenas prácticas para administrar los logs de mis contenedores

    Buenas prácticas para administrar los logs de mis contenedores

    09:15 min

Sesiones en Vivo

  • 22
    Solución desafío 01

    Solución desafío 01

    37:22 min
Tomar examen

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
        Esteban Novo

        Esteban Novo

        student•
        hace 10 años

        Para pushar (push) de una imagen en Docker Hub primero hay que hacer un login en Docker, para ello ejecutamos docker login en la consola y le damos usuario, pass y e-mail

        docker login
          Christian David Ospina Caicedo

          Christian David Ospina Caicedo

          student•
          hace 10 años

          Gracias! Le faltó mencionarlo a Marcos

          Karel Muniz Perdomo Muniz Perdomo

          Karel Muniz Perdomo Muniz Perdomo

          student•
          hace 10 años

          docker login -u 'miUsuario' -p 'miPassword' -e 'mi@email.com'

        Jose  Meira

        Jose Meira

        student•
        hace 9 años

        Borrar imágenes:

        docker rmi $(docker images -q)

        Eliminar contenedores:

        docker rm -f $(docker ps -aq)
        Joaquin Araujo

        Joaquin Araujo

        student•
        hace 8 años

        Un Dockerfile es un documento de texto que contiene todos los comandos que un usuario puede llamar en la línea de comando para armar una imagen.

        Instrucciones que podría contener un archivo Dockerfile:

        FROM [imagen]:[tag] MAINTAINER joaquinaraujojs@gmail.com LABEL "[clave]": "[valor]" WORKDIR /[directorio raíz del proyecto] COPY [ruta-relativa-del-archivo/carpeta] [destino-del-archivo/carpeta] ./ ADD [URL del archivo ha descargar] RUN [comando] && [comando] && ... && \ CMD [comando] ENTRYPOINT [comando] EXPOSE [puerto] ENV [variable de entorno]

        Los comandos a continuación permiten la construcción y configuración de una imagen a partir de un documento Dockerfile:

        • docker build [ruta del dockerfile] Inicializa la constricción de una imagen a partir de un archivo Dockerfile.
        • docker build -t [nombre-de-la-imagen:tag] [ruta...] Permite establecer un nombre y un tag a la imagen a generar.

        Si necesitas una guía y resumen del curso aquí la tienes.

          Simon P. Puente

          Simon P. Puente

          student•
          hace 8 años

          Cual es la diferencia entre ADD y COPY?

          Joaquin Araujo

          Joaquin Araujo

          student•
          hace 8 años

          COPY está pensado para copiar archivos locales del entorno de construcción y este no tiene ninguna capacidad de extracción o de descompresión de archivos como ADD.

        Victor Orozco

        Victor Orozco

        student•
        hace 8 años

        Las imagenes de Debian se deben antes que nada actualizar el repositorio o genera un error.

        FROM debian:8 RUN apt-get update RUN apt-get install -y curl vim

        Saludos.

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          También las de ubuntu tiene ese problema

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          No es que se deban actualizar, sino que hay paquetes que requieren actualizar el SO para poder instalarlas.

        Josué Isaac Fuentes López

        Josué Isaac Fuentes López

        student•
        hace 8 años

        si no reconoce los paquetes antes insertar

        RUN apt-get update
        Rodrigo Gomez Romero

        Rodrigo Gomez Romero

        student•
        hace 8 años

        me salía error al correr el docker build y era porque tenia que poner apt-get update
        mi Dockerfile quedaría así:

        FROM ubuntu RUN apt-get update RUN apt-get install -y curl RUN apt-get install -y vim```
          andres flores

          andres flores

          student•
          hace 7 años

          me too

        Jose  Meira

        Jose Meira

        student•
        hace 9 años

        Unable to locate package… esto sucede porque los repositorios no están actualizados.

        FROM ubuntu
        RUN apt-get update && apt-get install -y git
        RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

          Juan Diego Silva Garcia

          Juan Diego Silva Garcia

          student•
          hace 8 años

          O en el FROM colocas la etiqueta 14:04
          FROM ubuntu:14.04

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          Se deberían de fusionar esos dos run para tener las menos capas posibles

        Cesar David Ramírez Dimaté

        Cesar David Ramírez Dimaté

        student•
        hace 7 años

        Para que funcione la instrucción CMD o ENTRYPOINT de ping tuve que modificar el archivo Dockerfile de la siguiente forma:

        FROM ubuntu RUN apt-get update && apt-get install -y iputils-ping # Se define una instruccion en la imagen y se ejecuta cuando se crea un contenedor. # Formato json array. CMD ["ping", "-c", "5", "www.google.com"]
        luis bastian gutierrez

        luis bastian gutierrez

        student•
        hace 10 años

        Excelente curso, me ha gustado mucho y lo considero muy útil para ser aplicado en el día a día.

        Alex Miño

        Alex Miño

        student•
        hace 10 años

        Si al instalar los paquetes necesarios en vez ejecutarlo asi:

         apt-get install -y vim && apt-get install curl

        Lo ejecutaramos asi

        apt-get install -y vim curl

        Tambien se crearian 2 layers o solamente uno¿

          Efrain Rochin

          Efrain Rochin

          student•
          hace 9 años

          Se genera una capa por cada comando RUN

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          Solo una solo hay un solo apt-get

        Julian Parra

        Julian Parra

        student•
        hace 8 años

        ¿Qué pasaría si en el Dockerfile pongo como FROM una imagen base que contiene un comando por defecto y en ese Dockerfile pongo más adelante mi propio CMD para ejecutar mi comando? ¿Se ejecutaría los los dos comandos?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 8 años

          Solo puede existir un CMD por dockerfile si existe más de uno solo se ejecuta el último, en tu caso no se como puede funcionar exactamente pero creo que solo ejecutaria el CMD que tu pongas ya que al ir construyendo se da cuenta que hay dos CMD y ejecuta el último.

          Fuente:

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          Es sobreescrito con tu ultimo CMD, ,ecuerda que CMD permite establecer el comando por default que sera lanzado cuando al contenedor no se le especifica el comando a lanzar ejemplo:

          docker run -it

          es el ejemplo de tomcat el docker file contiene un cmd con

          CMD ["catalina.sh", "run"]
          docker run -Pd tomcat

          Espero haber sido claro

        Federico Pereira Medina

        Federico Pereira Medina

        student•
        hace 8 años

        Mi Hola Mundo en Docker.

        docker run --rm lordbasex/docker-super-mario-run

        Iván Fernández

        Iván Fernández

        student•
        hace 7 años

        Videos largos, pero muy bien explicados, al detalle.
        Excelente manera de escalar los temas por parte del educador.

        Ricardo Verónica Duran

        Ricardo Verónica Duran

        student•
        hace 7 años

        23 de agosto del 2018 y este curso sigue siendo el mejor de Docker en Platzi, gracias Marcos.

        Jorge DAngelo

        Jorge DAngelo

        student•
        hace 9 años

        Pregunta básica. Siempre se comienza una imágen docker con una imagen del sistema operativo a utilizar?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 9 años

          Si, puede usar una imagen base de un sistema operativo como alpine, ubuntu, centos, o puedes iniciar desde una imagen de algún lenguaje o servidor como por ejemplo python o nodejs.

        Saul Burgos

        Saul Burgos

        student•
        hace 8 años

        Link de la imagen para probar ADD:

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          La URL vendría siendo o

        EKAITZ HERNANDEZ  HERNANDEZ

        EKAITZ HERNANDEZ HERNANDEZ

        student•
        hace 8 años

        Invalid requirement: '/app/requirements.txt’
        It looks like a path. Does it exist ?

        Alguien sabe sobre el tema.

          EKAITZ HERNANDEZ  HERNANDEZ

          EKAITZ HERNANDEZ HERNANDEZ

          student•
          hace 8 años

          Me faltaba la opcion -r en pip install. Sorry

        Cesar David Ramírez Dimaté

        Cesar David Ramírez Dimaté

        student•
        hace 7 años

        Para los que deseen definir sus propios comandos (alias) en linux, deben seguir los siguientes pasos. Estos fueron los mios que creé de manera personal:

        subl ~/.bashrc alias dockerkillc='docker kill $(docker ps -q)' alias dockerremovei='docker rmi $(docker images -q)' alias dockerremovec='docker rm $(docker ps -qa)' alias dockerremovef='docker rm $(docker ps -aq) && docker rmi $(docker images -q)' . ~/.bashrc # Reflejar los cambios.
        Iván Toro

        Iván Toro

        student•
        hace 7 años

        Dockerfile docs

        Juliana Quiroz Upegui

        Juliana Quiroz Upegui

        student•
        hace 5 años

        Me pasaba este error:

        /bin/sh: 1: ping: not found

        La solución:

        FROM ubuntu RUN apt-get update RUN apt-get install iputils-ping -y CMD ping -c 10 www.google.com