Curso de Docker, Completo desde 0 a Experto
Docker el software opensource mas completo para el despliegue de aplicaciones.
Description
Bienvenidos al curso de Curso de Docker, Completo desde 0 a Experto!
Si deseas aprender a gestionar como todo un profesional docker, este curso es perfecto para ti.
Aprovecha esta oportunidad y sé un experto en docker.
Nuestros cursos son actualizados constantemente, si tienes duda con algún tema que no se ah tocado lo agregamos por ti.
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos. Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que "contenedores" independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.
El soporte del kernel Linux para los espacios de nombres aísla la vista que tiene una aplicación de su entorno operativo, incluyendo árboles de proceso, red, ID de usuario y sistemas de archivos montados, mientras que los cgroups del kernel proporcionan aislamiento de recursos, incluyendo la CPU, la memoria, el bloque de E/S y de la red. Desde la versión 0.9, Docker incluye la biblioteca libcontainer como su propia manera de utilizar directamente las facilidades de virtualización que ofrece el kernel Linux, además de utilizar las interfaces abstraídas de virtualización mediante libvirt, LXC (Linux Containers) y systemd-nspawn.
De acuerdo con la firma analista de la industria 451 Research, "Docker es una herramienta que puede empaquetar una aplicación y sus dependencias en un contenedor virtual que se puede ejecutar en cualquier servidor Linux. Esto ayuda a permitir la flexibilidad y portabilidad en donde la aplicación se puede ejecutar, ya sea en las instalaciones físicas, la nube pública, nube privada, etc."
Docker implementa una API de alto nivel para proporcionar contenedores livianos que ejecutan procesos de manera aislada.
Construido sobre las facilidades proporcionadas por el kernel Linux (principalmente cgroups y namespaces), un contenedor Docker, a diferencia de una máquina virtual, no requiere incluir un sistema operativo independiente. En su lugar, se basa en las funcionalidades del kernel y utiliza el aislamiento de recursos (CPU, la memoria, el bloque E / S, red, etc.) y namespaces separados para aislar la vista de una aplicación del sistema operativo. Docker accede a la virtualización del kernel Linux ya sea directamente a través de la biblioteca libcontainer (disponible desde Docker 0.9), o indirectamente a través de libvirt, LXC o systemd-nspawn.
Mediante el uso de contenedores, los recursos pueden ser aislados, los servicios restringidos, y se otorga a los procesos la capacidad de tener una visión casi completamente privada del sistema operativo con su propio identificador de espacio de proceso, la estructura del sistema de archivos, y las interfaces de red. Contenedores múltiples comparten el mismo núcleo, pero cada contenedor puede ser restringido a utilizar solo una cantidad definida de recursos como CPU, memoria y E / S.
Usar Docker para crear y gestionar contenedores puede simplificar la creación de sistemas altamente distribuidos, permitiendo que múltiples aplicaciones, las tareas de los trabajadores y otros procesos funcionen de forma autónoma en una única máquina física o en varias máquinas virtuales. Esto permite que el despliegue de nodos se realice a medida que se dispone de recursos o cuando se necesiten más nodos, lo que permite una plataforma como servicio (PaaS - Platform as a Service) de estilo de despliegue y ampliación de los sistemas como Apache Cassandra, MongoDB o Riak. Docker también simplifica la creación y el funcionamiento de las tareas de carga de trabajo o las colas y otros sistemas distribuidos.
Integración
Docker se puede integrar con diferentes herramientas de infraestructura, como Amazon Web Services, Ansible, Cfengine, Chef, Google Cloud Platform, DigitalOcean, IBM Bluemix, Jelastic, Jenkins, Microsoft Azure, OpenStack Nova, OpenSVC, Puppet, Salt, y Vagrant.
El proyecto Cloud Foundry Diego integra Docker con Cloud Foundry PaaS.
El proyecto GearD tiene como objetivo integrar Docker en el de Red Hat OpenShift Origin PaaS.
En respuesta a la disponibilidad de estas integraciónes, la plataforma de monitoreo, Datadog, desarrolló un reportaje sobre la tasa de adopción de los servicios de Docker por 7 000 empresas con infraestructuras basadas en la nube.
Historia
Solomon Hykes comenzó Docker como un proyecto interno dentro dotCloud, empresa enfocado a una plataforma como un servicio (PaaS), con las contribuciones iniciales de otros ingenieros de dotCloud, incluyendo Andrea Luzzardi y Francois-Xavier Bourlet. Jeff Lindsay también participó como colaborador independiente. Docker representa una evolución de la tecnología patentada de dotCloud, que es a su vez construida sobre proyectos de código abierto anteriores como Cloudlets.
Docker fue liberado como código abierto en marzo de 2013. El 13 de marzo de 2014, con el lanzamiento de la versión 0.9, Docker dejó de utilizar LXC como el entorno de ejecución por defecto y lo reemplazó con su propia biblioteca, libcontainer, escrito en Go. El 13 de abril de 2015, el proyecto tenía más de 20 700 estrellas de GitHub (haciéndolo uno de los proyectos con más estrellas de GitHub, en 20.ª posición), más de 4 700 bifurcaciones (forks), y casi 900 colaboradores.
Un análisis en 2018 mostró las siguientes organizaciones como las principales contribuyentes de Docker: Red Hat (mayores contribuyentes, aún más que el equipo de Docker en sí), el equipo de Docker, Microsoft, IBM, Google, Cisco Systems y Amadeus IT Group.
El 29 de julio de 2020 se dio a conocer la existencia de Doki, un malware que corre en el sistema operativo Linux que tiene por finalidad infectar la API de los contenedores Docker mal configurados. Algunas de sus acciones son las siguientes:
Crea URL única con vidas cortas para descargar payloads durante el ataque.
Ha sido creado para ejecutar comandos recibidos desde sus operadores.
Usa la biblioteca TLS para funciones criptograficas.
What You Will Learn!
- Qué es docker y que beneficios nos ofrece
- Como instalar docker en Ubuntu y Debian
- Como descargar e instalar imagenes oficiales en docker
- Como crear e instalar nuestra primera imagen en docker
- Profundizando Dockerfile From / Run / Copy / Add
- Profundizando Dockerfile Env / WorkDir / Expose
- Profundizando Dockerfile Label / User / Volume
- Como ingresar a nuestro docker con root y cambiar el hostname
- Como eliminar imagenes en docker
- Como cambiar el nombre de DockerFile
- Como listar y mapear puertos en Docker
- Como iniciar, reiniciar, detener contenedores en Docker
- Como crear y inspeccionar variales de entorno en Docker
- Como crear un contenedor de Mysql e inspeccionar las configuraciones internas
- Como crear un contenedor de Apache e inspeccionar las configuraciones internas
- Como crear un contenedor de Nginx e inspeccionar las configuraciones internas
- Como administrar usuario en contenedores docker
- Como limitar la ram y cpu de un contenedor en Docker
- Como copiar carpetas o archivos en contenedores Docker
- Como convertir tu contenedor en una imagen en Docker
- Que son los volumenes en Docker ?
- Como agregar volumenes tipo host a nuestros contenedores en Docker
- Como agregar volumenes a anonymous nuestros contenedores en Docker
- Como agregar volumenes tipo named a nuestros contenedores en Docker
- Como compartir volumenes con nuestros contenedores en Docker
- Que son las redes en Docker ?
- Como crear una red e inspeccionarlas
- Como agregar nuestros contenedores una nueva red
- Como conectar contenedores con redes diferentes
- Como asignar una ip a tu contenedor (DHCP o STATIC)
- Como eliminar redes en Docker
- Que es Docker Compose ?
- Como instalar Docker Compose en Docker
- Como crear un contenedor simple con Docker Compose
- Como gestionar variables de entorno en Docker Compose
- Como gestionar volúmenes en Docker Compose
- Como gestionar redes en Docker Compose
- Como contruir imágenes en Docker Compose
- Como sobreescribe el CMD de un contenedor con Docker Compose
- Como limitar recursos en contenedores con Docker Compose
- Como configurar politica de reinicio de contenedores en docker
- Como personaliza el nombre de tu proyecto en Docker Compose
- Como usar un nombre distinto en el docker compose
- Creacion de data center en docker - Instalacion de VestaCP o HestiaCP
- Que es vestacp, hestiacp y configuraciones iniciales en docker
- Creacion de data center en docker - Instalacion de Nginx Proxy Manager
- Que es nginx proxy manager y configuraciones iniciales en docker
- Creacion de data center en docker - Instalacion de Owncloud o Nextcloud
- Que es owncloud y nexcloud y configuraciones iniciales en docker
- Creacion de data center en docker - Instalacion de Odoo ERP
Who Should Attend!
- Todos