Una guía para principiantes de Docker: cómo crear su primera aplicación Docker

¿Eres desarrollador y quieres empezar con Docker? Este artículo está hecho para ti.

Después de una breve introducción sobre qué es Docker y por qué usarlo, podrá crear su primera aplicación con Docker.

¿Qué es Docker?

Docker es un software gratuito desarrollado por Docker Inc. Fue presentado al público en general el 13 de marzo de 2013 y se ha convertido desde ese día en una necesidad en el mundo del desarrollo de TI.

Permite a los usuarios crear entornos independientes y aislados para lanzar e implementar sus aplicaciones. Estos entornos se denominan contenedores.

Esto permitirá al desarrollador ejecutar un contenedor en cualquier máquina.

Como puede ver, con Docker, no hay más problemas de dependencia o compilación. Todo lo que tiene que hacer es iniciar su contenedor y su aplicación se iniciará inmediatamente.

Pero, ¿es Docker una máquina virtual?

Aquí está una de las preguntas más frecuentes sobre Docker. La respuesta es: en realidad, no del todo.

Puede parecer una máquina virtual al principio, pero la funcionalidad no es la misma.

A diferencia de Docker, una máquina virtual incluirá un sistema operativo completo. Funcionará de forma independiente y actuará como una computadora.

Docker solo compartirá los recursos de la máquina host para ejecutar sus entornos.

¿Por qué utilizar Docker como desarrollador?

Esta herramienta realmente puede cambiar la vida diaria de un desarrollador. Para responder mejor a esta pregunta, he escrito una lista no exhaustiva de los beneficios que encontrará:

  • Docker es rápido. A diferencia de una máquina virtual, su aplicación puede iniciarse en unos segundos y detenerse con la misma rapidez.
  • Docker es multiplataforma. Puede lanzar su contenedor en cualquier sistema.
  • Los contenedores se pueden construir y destruir más rápido que una máquina virtual.
  • No más dificultades para configurar su entorno de trabajo. Una vez que su Docker esté configurado, nunca más tendrá que reinstalar sus dependencias manualmente. Si cambias de equipo o si un empleado se incorpora a tu empresa, solo debes darle tu configuración.
  • Mantiene limpio su espacio de trabajo, ya que cada uno de sus entornos estará aislado y podrá eliminarlos en cualquier momento sin afectar al resto.
  • Será más fácil implementar su proyecto en su servidor para ponerlo en línea.

Ahora creemos tu primera aplicación

Ahora que sabe qué es Docker, ¡es hora de crear su primera aplicación!

El propósito de este breve tutorial es crear un programa Python que muestre una oración. Este programa deberá iniciarse a través de un Dockerfile.

Verás, no es muy complicado una vez que entiendes el proceso.

Nota: No necesitará instalar Python en su computadora. Dependerá del entorno de Docker contener Python para ejecutar su código.

1. Instale Docker en su máquina

Para Ubuntu:

Primero, actualice sus paquetes:

$ sudo apt update

A continuación, instale Docker con apt-get:

$ sudo apt install docker.io

Finalmente, verifique que Docker esté instalado correctamente:

$ sudo docker run hello-world
  • Para MacOSX: puede seguir este enlace.
  • Para Windows: puede seguir este enlace.

2. Crea tu proyecto

Para crear su primera aplicación Docker, lo invito a crear una carpeta en su computadora. Debe contener los siguientes dos archivos:

  • Un archivo ' main.py ' (archivo python que contendrá el código a ejecutar).
  • Un archivo ' Dockerfile ' (archivo Docker que contendrá las instrucciones necesarias para crear el entorno).

Normalmente debería tener esta arquitectura de carpeta:

. ├── Dockerfile └── main.py 0 directories, 2 files

3. Edite el archivo Python

Puede agregar el siguiente código al archivo ' main.py ':

#!/usr/bin/env python3 print("Docker is magic!")

Nada excepcional, pero una vez que vea “¡ Docker es mágico! ”Que se muestra en su terminal, sabrá que su Docker está funcionando.

3. Edite el archivo Docker

Un poco de teoría: lo primero que debe hacer cuando quiere crear su Dockerfile es preguntarse qué quiere hacer. Nuestro objetivo aquí es lanzar código Python.

Para hacer esto, nuestro Docker debe contener todas las dependencias necesarias para iniciar Python. Un linux (Ubuntu) con Python instalado debería ser suficiente.

El primer paso que debe tomar cuando crea un archivo Docker es acceder al sitio web de DockerHub. Este sitio contiene muchas imágenes prediseñadas para ahorrar tiempo (por ejemplo: todas las imágenes para Linux o lenguajes de código).

En nuestro caso, escribiremos 'Python' en la barra de búsqueda. El primer resultado es la imagen oficial creada para ejecutar Python. Perfecto, lo usaremos!

# A dockerfile must always start by importing the base image. # We use the keyword 'FROM' to do that. # In our example, we want import the python image. # So we write 'python' for the image name and 'latest' for the version. FROM python:latest # In order to launch our python code, we must import it into our image. # We use the keyword 'COPY' to do that. # The first parameter 'main.py' is the name of the file on the host. # The second parameter '/' is the path where to put the file on the image. # Here we put the file at the image root folder. COPY main.py / # We need to define the command to launch when we are going to run the image. # We use the keyword 'CMD' to do that. # The following command will execute "python ./main.py". CMD [ "python", "./main.py" ]

4. Cree la imagen de Docker

Una vez que su código esté listo y el Dockerfile esté escrito, todo lo que tiene que hacer es crear su imagen para contener su aplicación.

$ docker build -t python-test . 

La opción ' -t ' le permite definir el nombre de su imagen. En nuestro caso hemos elegido ' python-test ' pero puedes poner lo que quieras.

5. Ejecute la imagen de Docker

Una vez que se crea la imagen, su código está listo para ser lanzado.

$ docker run python-test

Debe poner el nombre de su imagen después de ' docker run '.

Ahí tienes, eso es todo. Normalmente debería ver "¡Docker es mágico!" que se muestra en su terminal.

El código está disponible

Si quieres recuperar el código completo para descubrirlo fácilmente o ejecutarlo, lo he puesto a tu disposición en mi GitHub.

-> GitHub: ejemplo de la primera aplicación de Docker

Comandos útiles para Docker

Antes de dejarlos, he preparado una lista de comandos que pueden serte útiles en Docker.

  • Enumere sus imágenes.
$ docker image ls
  • Elimina una imagen específica.
$ docker image rm [image name]
  • Elimina todas las imágenes existentes.
$ docker image rm $(docker images -a -q)
  • Enumere todos los contenedores existentes (en ejecución y no en ejecución).
$ docker ps -a
  • Detenga un contenedor específico.
$ docker stop [container name]
  • Detenga todos los contenedores en ejecución.
$ docker stop $(docker ps -a -q)
  • Elimina un contenedor específico (solo si está detenido).
$ docker rm [container name]
  • Elimine todos los contenedores (solo si están detenidos).
$ docker rm $(docker ps -a -q)
  • Display logs of a container.
$ docker logs [container name]

What’s next?

After all your feedback, I decided to write the next part of this beginner’s guide. In this article, you will discover how to use docker-compose to create your first client/server-side application with Docker.

-> A beginner’s guide to Docker — how to create a client/server side with docker-compose

Conclusion

You can refer to this post every time you need a simple and concrete example on how to create your first Docker application. If you have any questions or feedback, feel free to ask.

Don't miss my content by following me on Twitter and Instagram.

You can find other articles like this on my website: herewecode.io.

Want more?

  • Each week get a motivational quote with some advice, a short tutorial into a few slides, and one developer's picture on Instagram.
  • Sign-up for the newsletter and get the latest articles, courses, tutorials, tips, books, motivation, and other exclusive content.