CursosEmpresasBlogLiveConfPrecios

Redes

Clase 13 de 22 • Fundamentos de Docker 2017

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

    75:31 min
  • 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

    Viendo ahora
  • 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
        José David García Rodríguez

        José David García Rodríguez

        student•
        hace 9 años

        No he terminado este curso aún, pero hasta donde voy, tengo que decirlo, este es el mejor curso al que he aplicado en Platzi hasta ahora, excelente curso, de verdad, ha valido la pena cada segundo hasta ahora.

          Juan Jose Aparicio Aparicio

          Juan Jose Aparicio Aparicio

          student•
          hace 8 años

          estoy de acuerdo gran curso y excelente profesor.

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          Pienso lo mismo, explica las cosas muy pero muy bien, se nota bastante el dominio en el tema.

        Saul Burgos

        Saul Burgos

        student•
        hace 8 años

        En windows con toolbox el comand píng not exist y tampoco Ip en el contenedor unbuntu por defecto. Entonces una vez tengan el contenedor creado corran este comando:

        apt-get update && apt-get install -y net-tools && apt-get install -y iputils-ping

        y en lugar de "IP a " pueden usar ifconfig para ver las ip asignadas

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          Ejecute el comando que mencionas y no funciona. Debo ejecutar apt-get update && apt-get install -y iproute2 para poder utilizar ip a.

          Josué Isaac Fuentes López

          Josué Isaac Fuentes López

          student•
          hace 7 años

          yo creé una imagen con los paquetes para trabajar redes

          docker pull chaqui/ubuntured```
        JERSON STIVEL  GÓMEZ URREGO

        JERSON STIVEL GÓMEZ URREGO

        student•
        hace 10 años

        tengo una inquietud, estoy tratando de correr un apache con un website en un container, pero este se tiene que conectarse a mi otro website de mi maquina física tengo que ponerle algo en el hosts de mi container para llegar a mi apache del host ya que al tratar de hacer un wget desde mi container a un archivo de mi host  este no se logra conectar

          MESFIX SAS

          MESFIX SAS

          company_admin•
          hace 9 años

          si lo estas corriendo local modifica el archivo /etc/hosts algo como esto
          172.17.0.2 docker-web
          ip del contenedor colocas docker-web en el browser

        Juan Diego Silva Garcia

        Juan Diego Silva Garcia

        student•
        hace 8 años

        Que buen curso, No me imagino el actualizado.

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          espero que sea el mismo profesor@marcosnils rifa

        Mauricio Muriel

        Mauricio Muriel

        student•
        hace 7 años

        docker network connect [red_de_destino] [container_a_vincular]

        Este comando (docker network connect) permite vincular containers que no hacen parte de una red a ella (a la red)

        Miguel Costero

        Miguel Costero

        student•
        hace 7 años

        Docker es una maravilla.

        Fredy Abel Huanca Torres

        Fredy Abel Huanca Torres

        student•
        hace 9 años

        En el minuto 15:52, Marcos indica que link no puso el nombre del host asociado al id del contenedor de docker, por lo que indica que no se puede hacer ping a redes.
        Si bien es cierto eso es verdad!, pero lo podemos agregar manualmente y hacer ping a redis, tal como lo hizo en la red de bridge.
        Solo para Aclarar.

        Grupo OET

        Grupo OET

        student•
        hace 8 años

        Desde un contendor como puedo hacer para consumir la IP del host anfrition. Dicho de otra forma como puedo consumir un servicio que esta por el puerto 3309 de el host que levanto el contenedor?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 8 años

          Puedes revisar la red creada por docker con este comando
          docker network inspect <nombre de red>
          Y el gateway es tu sistema local, entonces debes poder conectare por medio de ese gateway y el puerto al servicio que necesitas, pero lo mejor como lo comenta @danajazzero es que todo este en contenedores de docker y se comuniquen entre ellos.

          Grupo OET

          Grupo OET

          student•
          hace 8 años

          No me hice entender. No necesito comunicarme con otros contenedores, para este caso lo que necesito es poder consumir la IP y puerto de mi host. Ejemplo.

          1. Desde mi pc levanto un contenedor de nginx+php con docker-compose.
          2. Ahora monto un script en el contendor y quiero que se conecte a un mysql que tengo en mi pc (es un ejemplo ya se que seria mejor montar el mysql en otro contenedor).

          Que debo hacer para lograr comunicarme desde el contenedor a mi pc. que IP deberia colocar en el script?

        Eduardo Lujan

        Eduardo Lujan

        student•
        hace 8 años

        Para conectarse en osx a la maquina virtual

        docker-machine ls

        En mi caso se llama default

        ssh docker@$(docker-machine ip default)
        Alexander Samaniego Peñafiel

        Alexander Samaniego Peñafiel

        student•
        hace 8 años

        ¿Se puede modificar la ip y puerto a un contenedor?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 8 años

          El puerto si ya que es el que expones al momento de ejecutarlo, pero la ip la asigna de forma automática el dns interno que tiene docker para conectar los contenedores.

        Cesar David Ramírez Dimaté

        Cesar David Ramírez Dimaté

        student•
        hace 7 años

        Tengo un problema. Ejecuto todos los pasos para la app de ejemplo con python con redis y sigue sin funcionar. 😔

        Dockerfile

        FROM python:2.7 WORKDIR /app COPY app.py requirements.txt ./ RUN pip install -r requirements.txt CMD python app.py EXPOSE 5000
        from flask import Flask from redis import Redis import os import socket app = Flask(__name__) redis = Redis(host='redis', port=6379, socket_connect_timeout=5) host = socket.gethostname() @app.route('/') def hello(): redis.incr('hits') return '\nHello World!\nI have been seen %s times.\nMy Host name is %s\n\n' % (redis.get('hits') ,host) if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)

        requirements.txt

        flask redis

        En la terminal:

        docker build -t python_app . docker pull redis docker run -d --name my_redis_bd redis docker run -d -P --name my_python_app --link my_redis_bd python_app docker ps # CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # c20a596909e1 python_app "/bin/sh -c 'python …" 5 seconds ago Up 3 seconds 0.0.0.0:32769->5000/tcp my_python_app # 404368ed866c redis "docker-entrypoint.s…" 49 seconds ago Up 47 seconds 6379/tcp my_redis_bd

        Resultado:

        Screenshot_53.png
          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          Ya logré solucionarlo. Cómo le definí un nombre a mi contenedor de redis, este vendría siendo el nombre del host, por lo cual debo modificarlo en el código fuente:

          redis = Redis(host='my_redis_bd', port=6379, socket_connect_timeout=5)

          Luego maté el contenedor de la app (docker kill) la eliminé (docker rm) y volví a generarla con docker run -d -P --name my_python_app --link my_redis_bd python_app y ahí si funcionó 😎

          Screenshot_54.png
        Usuario anónimo

        Usuario anónimo

        user•
        hace 6 años

        Super!! excelente capitulo de redes :)

        José David García Rodríguez

        José David García Rodríguez

        student•
        hace 9 años

        En el vídeo anterior: “Workshop: Aspectos de seguridad en Docker”, aprendimos a tener control remoto sobre Docker con TLS para garantizar la identidad de quien intenta ejercer gestión en Docker, bien, ahora aprovechando este vídeo: “Redes”, quisiera que me dieran una guía, para aplicar los conocimientos adquiridos en ambos vídeos, es decir, ¿puedo tener la entidad certificante en un contenedor, el servidor en otro contenedor, y de igual forma el cliente en otro? Es decir, ¿cómo puedo firmar los certificados remotamente? ¿Cómo sería en el caso de tener de un cliente que desea hacer una solicitud de firmado hacia la entidad certificante? ¿Cómo atendería la entidad certificante una cola de peticiones en las cuales deba firmar certificados o mejor dicho, dar por hecho que la identidad de los clientes que desean acceder al servidor, es auténtica?

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 7 años

          Realmente el tema de la seguridad no tiene nada que ver con los contenedores, ya que es una relación Servidor-CA-Cliente. La certificación se realiza es con el demonio de docker, para que pueda descargar y/o acceder a los contenedores.

        Steave HH

        Steave HH

        student•
        hace 9 años

        Estoy en Ubuntu 16.04
        al consultar "ip a"
        bash: ip: command not found

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 9 años

          No tienes el programa ip instalado, puedes intentar corriendo ifconfig hace lo mismo.

          Steave HH

          Steave HH

          student•
          hace 9 años

          Hola GOLLUM23, gracias por responder.
          Cuando ejecuto el comando ifconfig sale: bash: ifconfig: command not found.

        José Antonio Arias Rodríguez

        José Antonio Arias Rodríguez

        student•
        hace 9 años

        Para el ejemplo de redis, creo el contenedor de redis, luego creo otro de python con la bandera --link redis podre hacer “ping redis” desde container python.

        mi pregunta es, que pasa si borro el contenedor de redis y lo creo de nuevo, el contenedor de python podrá aun haciendo el ping? o tengo que regenerar ese también?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 9 años

          Sigue funcionando sin problema, si se queda sin conexión solo reinicias (docker stop, docker start) el contenedor de python para que docker reordene las ips.

        Rafael Luna Paredes

        Rafael Luna Paredes

        student•
        hace 8 años

        Para los que tienen problemas con “ip a” en Windows, yo tenía ese problema al instalar la imagen de “ubuntu”, pero se resuelve instalando el contenedor con la imagen “ubuntu-upstart”.

          Rafael Luna Paredes

          Rafael Luna Paredes

          student•
          hace 8 años

          Ampliando mi respuesta anterior. Eso que mencione solo funciona para ver la conexión interna de los contenedores.

          Si queremos ver cosas como el “docker0”, debemos abrir el programa de Virtualbox, y ahi dar doble clic sobre el icono que representa nuestra maquina virtual, nos abrirá una terminal de linux y dentro de ella pondremos “ip a” para que nos muestre la información que necesitamos. Si lo hacemos desde la terminal de quickstart no nos funcionará. Si queremos desplazarnos para ver la información de la terminal, en el teclado ponemos SHIFT+Av. Pag o SHIFT+Re Pag.

        Raul Novelo

        Raul Novelo

        student•
        hace 8 años
        <h1>Redes</h1>

        Por defecto, al instalar Docker en Linux se crea una interfaz de red virtual llamada docker0 en el equipo host.

        El comando docker network permite interactuar con las redes de Docker y los contenedores dentro de ellas, unos comandos importantes a tomar en cuenta son:

        • Permite crear una red.
        docker network create [nombre de la red]
        • Permite conectar un contenedor de una red.
        docker network connect
        • Lista las redes existentes.
        docker network ls
        • Permite eliminar una red.
        docker network rm
        • Permite desconectar un contenedor de una red.
        docker network disconnect
        • Muestra información de interés sobre las redes de Docker.
        docker network inspect
        • Utilizar esta bandera al crear un contenedor permite especificar la red en la cual estará dicho contenedor.
        --net [nombre de la red]
        • Permite enlazar un contenedor a una red y así acceder a ellos por medio de su nombre.
        --link [nombre del contenedor]

        La red bridge es la que utilizan todos los contenedores por defecto, la host permite que los contenedores compartan la misma IP que la del equipo host.

        Lorgio Ricardo Trinidad Caro

        Lorgio Ricardo Trinidad Caro

        student•
        hace 9 años

        Hola, estoy corriendo docker en mac, ¿Como veo la interfaz docker0? ya que al ejecutar el comando “ip a” no reconoce el comando. Sin embargo si ejecuto “docker” tengo acceso a las opciones de comando.
        Muchas gracias

          Ricardo Azpeitia P.

          Ricardo Azpeitia P.

          student•
          hace 9 años

          El comando es ip -a o simplemente ip.

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          No existe el comando ip en osx, para ver las interfaces puedes usar

          ifconfig

          pero marcos usa una instalacion sobre linux para que puedas ver lo mismo que el tendrias que conecterte a la maquina virtual de virtual box default

          ssh docker@$(docker-machine ip default) #el password por default es tcuser
        Raul Cortes santibañez

        Raul Cortes santibañez

        student•
        hace 9 años

        no puedo generar la salida con el comando ip a. El quickstart me dice ip: command not found

        ayuda plis :'c

          Ricardo Azpeitia P.

          Ricardo Azpeitia P.

          student•
          hace 9 años

          En donde estas poniendo ese comando? Que sistema operativo estas usando?

          Raul Cortes santibañez

          Raul Cortes santibañez

          student•
          hace 9 años

          Lo estoy poniendo en la terminal de quickstart del docker toolbox para windows, según marcos debería funcionar, pero no es mi caso. 💔

        Ivan Romo

        Ivan Romo

        student•
        hace 9 años

        Hola  como mapeamos multiples puertos internos a un externo?

          Eduardo Lujan

          Eduardo Lujan

          student•
          hace 8 años

          Puedes explicar mejor la pregunta ?