Introducción a Docker - Conceptos básicos
Tags: docker, devops, beginners, tutorial
Published: 2019-08-10 16:49:56

---
title: Introducción a Docker - Conceptos básicos
published: true
description: Serie de artículos sobre Docker y Contenedores.
tags: docker, devops, beginners, tutorial
canonical_url: https://dev.to/azure/introducao-a-docker-conceitos-basicos-4g19
series: Aprenda Docker - Zero to Hero (Español)
---

[![docker.png](https://i.postimg.cc/7LZsn8Tc/docker.png)](https://postimg.cc/VJ2WzhgB)

_artículo escrito originalmente por Chris Noring - **[AQUÍ](https://dev.to/softchris/5-part-docker-series-beginner-to-master-3m1b)**_

Hoy comenzaremos otra serie de artículos sobre Docker que explican desde conceptos básicos hasta conceptos más avanzados. Esta serie de artículos se basó en las publicaciones de mi gran amigo **[Chris Noring]
(https://twitter.com/chris_noring)**, quien también es un Cloud Advocate y una persona extremadamente apasionada por las tecnologías de código abierto como yo!

Por lo tanto, nos unimos y haremos esta serie de artículos especialmente para todos ustedes. Sin embargo, además de los artículos escritos por él, ¡haré videos sobre cada tema enseñado y con un poco más de contenido para respaldar aún más nuestra serie!

¡Vamos!

## ¿Qué es Docker?

¡Esta es una pregunta muy interesante y trataré de resumir para todos!

**[Docker](https://www.docker.com/)** es un proyecto de código abierto que tiene como objetivo automatizar la implementación de aplicaciones como contenedores que pueden ejecutarse en la nube o incluso localmente.

La parte más interesante de Docker es que implementa contenedores en todas las capas de una nube híbrida. Entre ellos, **[Azure](https://docs.microsoft.com/azure/docker/?WT.mc_id=blog-devto-gllemos)**.

[![image-2.png](https://i.postimg.cc/NfXWKc1k/image-2.png)](https://postimg.cc/YhpXPTDv)

Y otro punto muy interesante: puede ejecutar contenedores de imágenes en Linux, Windows y MacOs.

Creo que puedes entender bien lo que es Docker, ¿no? Pero si quieres saber más detalles, solo accede al enlace **[AQUÍ](https://aka.ms/AA5iyzx)**

Durante esta serie pondré a disposición: enlaces, recursos, libros grátis como los materiales y lecturas recomendadas sobre el tema! Porque no hay nada mejor que aprender una nueva tecnología a través de libros y documentación!

## Recursos necesarios para seguir en la serie: 'Aprenda Docker - Zero to Hero'

No hay un requisito obligatorio para seguir en la serie. ¡También porque la intención de esta serie es enseñarles a todos a usar Docker!

Sin embargo, necesitaremos usar algunos de los recursos necesarios para descargar y para que podamos continuar la serie. Entre ellos: 

- **[Download Docker Community Edition CE](https://www.docker.com/community-edition):** ¡Necesitaremos descargar el Docker Community para aprender cómo ejecutar los comandos desde los más básicos hasta los más avanzados! Esta versión es gratuita y se puede descargar sin ningún problema (para usuarios: Windows, Linux y MacOs)

- **[Conta no Azure - Grátis](https://azure.microsoft.com/es-es/free/?wt.mc_id=blog-devto-gllemos):** Durante esta serie, probaremos algunas imágenes y contenedores en la nube. Y en este caso tenemos que utilizar un servicio en la nube. En este caso usaremos Azure.

- **[Azure For Students - Grátis](https://azure.microsoft.com/pt-br/free/students/?wt.mc_id=blog-devto-gllemos):** Si eres estudiante en una universidad y tienes una cuenta de correo electrónico de tu universidad, ¡tengo buenas noticias para ti! Puede obtener una cuenta completamente gratuita en: **[Azure for Students](https://azure.microsoft.com/es-es/free/students/?wt.mc_id=blog-devto-gllemos)** ¡no se requiere tarjeta de crédito e inmediatamente gana un saldo de USD 100.00 para usar los servicios de Azure durante 12 meses!

- **[Node.js](https://nodejs.org/en/):** A medida que avancemos en la serie, utilizaremos algunos ejemplos de cómo implementar el uso de imágenes y contenedores en aplicaciones Node.js.

- **[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=blog-devto-gllemos):** Como habrá ejemplos en el código, usemos Visual Studio Code para desarrollar nuestras aplicaciones.

- **[Extensão Docker - Vs Code](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker&WT.mc_id=blog-devto-gllemos):** Utilizaremos la extensión Docker, que será muy importante para cualquier persona que use Visual Studio Code.

- **[Extensão Azure Tools - Vs Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack&WT.mc_id=blog-devto-gllemos):** Como usaremos Azure, ¡no hay nada mejor que usar una extensión integrada de Visual Studio Code para que sea simple, rápido y dinámico crear una imagen o contenedor integrado en Azure con Visual Studio Code!

Una vez que haya configurado todo su entorno de desarrollo y todo listo, ¡podemos seguir con la serie!

## ¿Por qué usar Docker?

Docker nos ayudará a crear un entorno ejecutable. Sin mencionar que podrá especificar el sistema operativo que desea utilizar, la versión exacta de diferentes bibliotecas, diferentes variables de entorno y sus valores, entre otros puntos muy importantes. Pero el punto más importante es que podrá ejecutar su aplicación de forma aislada dentro de ese entorno.

Algunos puntos que nos hacen pensar la razón por qué usamos Docker:

* **onboarding:** Cada vez que un equipo tenga un nuevo desarrollador, deberá configurar, instalar programas, SDK, herramientas de desarrollo, bases de datos, agregar permisos y más. Y esto es algo que puede llevar días o incluso semanas. Sin embargo, cuando el equipo de desarrollo ya tiene una imagen Docker de todos los recursos necesarios que el desarrollador necesita para comenzar a desarrollar, ¡solo una ejecución de Docker será más que suficiente para instalar todo en minutos! Y eso acelera enormemente el proceso de **onboarding** del nuevo desarrollador.

* **tienen entornos de desarrollo estándar:** Si! Este punto es muy interesante! ¡Debido a que con Docker, puede crear un **DEV Staging**, así como un entorno de producción estandarizado y el mismo! ¡Y eso es algo maravilloso! Desde el Docker / contenedor, podría tener entornos que fueran similares, pero habría ligeras diferencias y cuando intente descubrir un error particular de su aplicación, seguramente pasará mucho tiempo buscando el problema principal del bug. Y a menudo el error está en el código fuente, pero debido a alguna diferencia en el entorno, puede tomar mucho tiempo determinar la causa del problema. Con Docker facilitan enormemente el equipo de desarrollo en estas situaciones, por cierto, son situaciones muy comunes en el día a día.

* **Ah ... mi máquina funciona:** Usando el contenedor Docker, esta frase nunca será utilizada. ¡¿Sabes porque?! Debido a que Docker crea estos contenedores aislados, que usted especificará exactamente lo que deberían tener, puede enviar contenedores a los clientes y funcionarán tal como lo hacen en el entorno de desarrollo / producción.

## Instalación de Docker

Ahora que entendemos los conceptos básicos de Docker & Contenedores, instalemos Docker en nuestra máquina. Lo primero que debemos hacer es ejecutar el **[Docker Community Edition CE](https://www.docker.com/community-edition)** Si es usuario de Windows y no sabe cómo instalar Docker correctamente en su máquina, hay un video tutorial que le enseña cómo hacerlo a través del siguiente enlace:

📺 **[Instalar Docker en Windows 10](https://www.youtube.com/watch?v=Bxepw-C5a-s)**

Después de instalar Docker correctamente en su máquina, debería ver la información de acuerdo con el siguiente gif:

[![gif-24a53d4bbf688045d.gif](https://s3.gifyu.com/images/gif-24a53d4bbf688045d.gif)](https://gifyu.com/image/Elt0)

Si todo funciona igual que el gif anterior, ¡estamos listos para desarrollar una aplicación con Docker!

## Conclusión 

Como dije anteriormente, los ayudaremos a todos a comprender Docker, desde conceptos básicos hasta conceptos más avanzados, y con eso, proporcionaremos enlaces, contenido y cursos gratuitos que pueden complementar los estudios de todos.

Estas son algunos de los recursos:

* **[Compilación de una aplicación web en contenedores con Docker](https://docs.microsoft.com/es-es/learn/modules/intro-to-containers/?WT.mc_id=blog-devto-gllemos)**
* **[Implementación y ejecución de una aplicación web en contenedor con Azure App Service](https://docs.microsoft.com/es-es/learn/modules/deploy-run-container-app-service/?WT.mc_id=blog-devto-gllemos)**
* **[Aprendizaje profundo interactivo con Jupyter, Docker y PyTorch en Data Science Virtual Machine](https://docs.microsoft.com/es-es/learn/modules/interactive-deep-learning/?WT.mc_id=blog-devto-gllemos)**
* **[Compilación y almacenamiento de imágenes de contenedor con Azure Container Registry](https://docs.microsoft.com/es-es/learn/modules/build-and-store-container-images/?WT.mc_id=blog-devto-gllemos)**
* **[Ejecutar contenedores de Docker con Azure Container Instances](https://docs.microsoft.com/es-es/learn/modules/run-docker-with-azure-container-instances/?WT.mc_id=blog-devto-gllemos)**
* **[Get Started - Docker Documentation](https://docs.docker.com/get-started/)**

Otro punto importante, siempre después de escribir una publicación, haré un video sobre el tema en mi **[Canal de Youtube](https://www.youtube.com/user/l32759)** explicando y enseñando por video. Porque hay personas a las que les gusta aprender una nueva tecnología a través de videos.

Si desea conocer el calendario de videos, lo pondré a disposición a través del repositorio de GitHub **[AQUÍ] (https://github.com/glaucia86/docker-zero-to-hero-series)**

Si tiene alguna pregunta con respecto a los artículos, puede dejar sus preguntas en los comentarios a aquí y si desea dar sugerencias, ¡háganoslo saber también! ¡Porque esta serie está hecha para todos ustedes en la comunidad!

En el siguiente artículo, explicaré cómo desarrollar una aplicación Node.js con Express usando Docker. ¡Será un artículo más práctico! ¡Manténganse al tanto!

Y para saber esta y otras novedades, ¡sígueme en twitter!

[![Twitter](https://code4coders.files.wordpress.com/2019/05/image-12.png)](https://twitter.com/glaucia_lemos86)

Hasta pronto!