Enlace Patrocinado
¿Qué es Docker?
Docker es un software gratuito desarrollado por Docker Inc. Se presentó al público general el 13 de marzo de 2013 y desde entonces se ha convertido en algo imprescindible en el mundo del desarrollo.
Affiliate Ad
Permite a los usuarios crear entornos independientes y aislados para lanzar y desplegar sus aplicaciones. A estos entornos se les llama contenedores.
Esto permite al desarrollador ejecutar un contenedor en cualquier máquina.
Como puedes ver, con Docker ya no hay problemas de dependencias o compilación. Todo lo que tienes que hacer es lanzar tu contenedor y tu aplicación se lanzará inmediatamente.
Pero, ¿es Docker una máquina virtual?
Esta es una de las preguntas más frecuentes acerca de Docker. La respuesta es ‘no exactamente’.
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. Trabajará de forma independiente y actuará como un ordenador.
Docker sólo comparte los recursos de la máquina anfitriona para ejecutar sus entornos.
¿Por qué usar Docker como desarrollador?
Esta herramienta 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ás:
- Docker es rápido. A diferencia de una máquina virtual, tu aplicación arrancará en segundos y se parará igual de rápido.
- Docker es multiplataforma. Puedes lanzar tu contenedor en cualquier sistema.
- Los contenedores pueden construirse y destruirse más rápidamente que una máquina virtual.
- Se acabaron las dificultades para crear tu entorno de trabajo. Una vez que Docker está configurado, nunca tendrás que reinstalar dependencias manualmente. Si cambias de ordenador o llega un nuevo empleado, sólo tienes que darle tu configuración.
- Mantienes tu espacio de trabajo limpio, ya que tus entornos estarán aislados y puedes borrarlos en cualquier momento sin impactar al resto.
- Facilita desplegar tu proyecto en tu servidor para ponerlo en línea.
Creemos nuestra primera aplicación
Ahora que ya sabes qué es Docker, es el momento de crear tu primera aplicación.
El propósito de este pequeño tutorial es crear una aplicación Python que muestre una frase. Está aplicación se lanzará mediante una fichero Docker (Dockerfile).
Verás que no es complicado una vez que comprendes el proceso.
Nota: no es necesario instalar Python en tu ordenador. Es tarea del entorno de Docker contener Python para ejecutar tu código.
1. Instala Docker en tu máquina
- Para Ubuntu
Primero, actualiza paquetes
$ sudo apt update
Después, instala Docker con apt-get
$ sudo apt install docker.io
Finalmente, verifica que Docker se ha instalado correctamente:
$ sudo docker run hello-world
- Para MacOSX: puedes seguir este enlace (en inglés).
- Para Windows: puedes seguir este enlace (en inglés).
2. Crea tu proyecto
Para crear tu primera aplicación de Docker, crea una nueva carpeta un tu ordenador. Debe contener estos dos ficheros:
- Un fichero ‘main.py’ (el fichero python que contiene el código a ejecutar).
- Un fichero ‘Dockerfile’ (que contiene las instrucciones necesarias para crear el entorno).
Normalmente, la carpeta quedaría así:
.
├── Dockerfile
└── main.py
0 directories, 2 files
3. Edita el fichero Python
Puedes añadir el siguiente código en el fichero ‘main.py’:
#!/usr/bin/env python3print("Docker es mágico!")
Nada excepcional, pero cuando veas ‘Docker es mágico!’ en tu terminal sabrás que Docker está funcionando.
4. Edita el fichero Docker
Algo de teoría: lo primero que hay que hacer cuando creamos un Dockerfile es preguntarnos qué queremos hacer. Nuestro objetivo aquí es lanzar el código Python.
Para hacer esto, nuestro Docker debe contener todas las dependencias necesarias para lanzar Python. Un Linux (Ubuntu) con Python instalado debería ser suficiente.
El primer paso para crear un fichero Docker es acceder a la web DockerHub. Esta página muchas imágenes prediseñadas para ahorrar tiempo (por ejemplo, todas las imágenes de Linux o lenguajes de programación).
En nuestro caso, escribiremos ‘Python’ en la barra de búsqueda. El primer resultado es la imagen oficial creada para ejecutar Python. Perfecto, esa 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 'ADD' 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.
ADD 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" ]
5. Crea la imagen Docker
Una vez que el código y el Dockerfile están listos, todo lo que tienes que hacer es crear la imagen que contiene tu aplicación.
$ docker build -t python-test .
La opción ‘-t’ permite definir el nombre de tu imagen. En nuestro caso, hemos elegido ‘python-test’ pero puedes poner lo que quieras.
6. Ejecuta la imagen Docker
Una vez que la imagen se ha creado, tu código esta listo para ejecutarse.
$ docker run python-test
Necesitas poner el nombre de tu imagen después de ‘docker run’.
Y eso es todo. Deberías ver ‘Docker es mágico!’ en tu terminal.
El código está disponible
Si quieres obtener el código completo para recuperarlo fácilmente o ejecutarlo, lo he puesto a disposición de cualquiera en GitHub.
Conclusión
Puedes tener este artículo como referencia cada vez que necesites un ejemplo sencillo de como crear una aplicación Docker. Si tienes preguntas, puedes dejarlas en los comentarios.
Puedes leer el artículo original en: http://developinginspanish.com/2020/01/26/guia-para-principiantes-de-docker-como-crear-tu-primera-aplicacion/
Puedes leer el artículo original en inglés en: https://medium.com/free-code-camp/a-beginners-guide-to-docker-how-to-create-your-first-docker-application-cc03de9b639f