Qué es Docker y cómo empezar a usarlo.

by Alex Garcia Date: 17-03-2023 Docker principiantes contenedores

Docker es una plataforma creada con el fin de desarrollar, implementar y ejecutar aplicaciones dentro de contenedores, lo cual permite a los desarrolladores hacer el empaquetado de dichas aplicaciones junto a sus correspondientes dependencias dentro de estas unidades estandarizadas llamadas contenedores de software.

En este artículo podrás encontrar:

¿Que es un contenedor?

Un contenedor es una instancia ejecutable de una imagen, aislada de las demás instancias del sistema. Un contenedor se puede ejecutar en máquinas locales, máquinas virtuales o ser desplegadas a la nube.

¿Que es una imagen de contenedor?

Al ejecutar un contenedor, se utiliza un sistema de archivos aislado. Este sistema de archivos personalizado, es proporcionado por la imagen del contenedor. Dado que la imagen contiene el sistema de archivos del contenedor, esta debe contener todo lo necesario para ejecutar una aplicación, como las dependencias, configuraciones, scripts, etc. La imagen también contiene otra información útil para el contenedor, como variables de entorno o un comando predeterminado para ejecutar.

¿Por qué usar Docker?

Docker permite entregar código con más rapidez, estandarizar operaciones en las aplicaciones, transferir código con facilidad y ahorrar dinero al mejorar el uso de recursos. Su sintaxis es sencilla y gracias a él puedes portar las aplicaciones a cualquier sistema operativo siempre que trabaje con docker.

¿Que debería saber antes de empezar con Docker?

A pesar de funcionar en sistemas operativos Windows, Docker trabaja mucho mejor en sistemas Linux, además de que muchos de los contenedores que puedes llegar a instalar vayan a trabajar en entornos Linux, por lo que conocer su estructura de archivos o comandos básicos sobre la consola Linux podría ser un requisito antes de iniciar con Docker.

Instalación

Como bien hemos mencionado anteriormente, Docker puede funcionar tanto en sistemas operativos Windows como en Linux y Mac, aunque siempre trabajará mucho mejor sobre Linux.

Para Windows es posible que necesites instalar el subsistema de Windows para linux (WSL), aparte de que, si bien en las últimas versiones esto parece haberse solucionado, pueden haber errores de compatibilidad si tienes que trabajar con máquinas virtuales, como las de VitrualBox, y contenedores de Docker.

Si quieres saber como se instala docker en cada uno de los distintos sistemas, puedes descargarlo e instalarlo desde la página oficial: https://docs.docker.com/get-docker/

Conceptos básicos.

Si ya tienes docker instalado y estás listo para empezar, a continuación te explicaremos unos breves conceptos básicos sobre el funcionamiento de docker y la gestión de contenedores.

Añadir usuario a grupo Docker.

Durante la instalación de Docker en Windows se solicitará que se le dé el de administrador mediante un mensaje de UAC, donde añadirá al usuario de la instalación al grupo docker-users, mientras que los demás usuarios deberán ser añadidos de forma manual.

Por otro lado, en Linux, es posible que tengas que crear dicho grupo y añadir tu usuario al grupo de docker para evitar tener que estar usando el comando con permisos de administrador sudo cada vez que quieras hacer algo en Docker. Puedes encontrar los pasos para hacer dicha operación en el manual oficial: https://docs.docker.com/engine/install/linux-postinstall/

¿Cómo se descarga una imagen?

Como bien explicamos anteriormente, un contenedor necesita de una imagen que contenga el sistema de archivos, las dependencias y otras configuraciones necesarias para su correcto funcionamiento.

Mediante https://hub.docker.com/ podremos acceder a la búsqueda de dichas imagenes, tanto oficiales como hechas por otros usuarios, donde podremos escoger la que más nos guste. Así mismo, Docker nos concede un comando para poder hacer lo mismo mediante la terminal, docker search.

docker search

Una vez tenemos la imagen que deseamos, deberemos ejecutar el comando docker pull nombre_imagen:tag. El tag son la versión de la imagen, siendo latest la última versión de todas, por lo que si descargamos una imagen sin indicarle el tag o versión que deseamos, se nos descargará la de latest por defecto.

docker pull

¿Cómo se crea un contenedor?

Con el comando docker run podemos crear de forma sencilla un contenedor, así como descargar la imagen en caso de que no la encontremos en nuestro dispositivo local, por lo que el paso anterior de docker pull podría saltarse.

Con docker run podemos introducir una serie de parámetros muy interesantes, como:

  • -d o --detach: Permite mantener el contenedor arrancado en segundo plano, evitando así que se cierre al salirnos de él.
  • -it o /Foreground/interactive: Mantendremos el contenedor en ejecución y nos permitirá interactuar con él a través del shell.
  • --name: Nos permite asignarle un nombre específico.

Si deseas ver más parámetros útiles de docker run, puedes consultar su documentación oficial en https://docs.docker.com/engine/reference/commandline/run/.

docker run

¿Cómo se interactua con el contenedor?

Si has hecho uso del parámetro -d a la hora de usar el docker run, lo más seguro es que estés preguntandote como acceder a él. Para ello, has de utilizar el parámetro docker exec -it contenedor comando. Si has de entrar a realizar gestiones, largas y deseas entrar en el, puedes usar el comando "bash" o "/bin/bash" detrás del nombre del contenedor, aunque también podrías usar comandos sencillos y de un solo uso como "ls".

docker exec

¿Cómo se crea una imágen?

Imagina que has instalado una imágen de Apache, has realizado las configuraciones que considerabas necesarias y quieres guardar los cambios realizados, ¿se puede? Gracias a Docker Hub, la misma página que hemos utilizado para buscar una imagen, podremos subirla y guardarla con el usuario que hayamos registrado, pero primero hay que crear la imágen.

Para ello vamos a usar docker commit de la siguiente forma: docker commit -a 'autor' -m 'mensaje' nombre_contenedor nombre_imagen:tag.

Como recomendación, a la hora de crear una imagen a partir de un contenedor, usa el orden nombre_usuario/nombre_imagen:tag, ya que es de esta forma en la que se guardará más adelante la imagen en el repositorio de Docker Hub.

docker commit

En segundo paso, será iniciar sesión desde Docker Desktop, o bien mediante el comando docker login, donde nos pedirá nuestro usuario y nuestra contraseña del Docker Hub.

docker login

Por último, con un docker push imagen:tag podremos subir la imagen a la lista de repositorios del Docker Hub.

docker push

¿Cómo se muestran las imágenes y contenedores?

Si queremos ver cuántas imágenes y/o contenedores tenemos, podemos hacerlo tanto por el entorno gráfico que nos presta Docker Desktop, como con los comandos docker images y docker ps. Puede ocurrir algo al usar docker ps, y es que solo se mostrarán los contenedores que estén activos en ese momento, por lo que si deseamos verlos todos tendremos que hacer uso del parámetro -a.

docker image

docker ps

¿Cómo se apagan y encienden los contenedores?

Para apagar un contenedor basta con usar el comando docker stop contenedor y para encenderlo docker start contenedor.

docker stop and start

¿Cómo se borran las imágenes y los contenedores?

Si deseamos eliminar un contenedor, deberemos usar el comando docker rm contenedor, es importante que este apagado. Para borrarlas haremos uso de docker rmi imagen, es importante que no tengan ningún contenedor asociado a ellas.

docker rm and rmi

Conclusión

En conclusión, Docker facilita mucho la portabilidad de las aplicaciones para los desarrolladores o los testeos para los administradores, lo que la hace una genial herramienta a tener en cuenta.Sin embargo, todavía hay mucho por descubrir sobre Docker, como su funcionamiento de red, que permite la comunicación entre los diferentes contenedores y la máquina anfitriona; el uso de volúmenes, para asegurar la persistencia de los datos almacenados dentro de los contenedores; o cómo Docker interactúa con Kubernetes. Pero todo esto es algo que dejaremos que experimentes por ti mismo.

 
by Alex Garcia Date: 17-03-2023 Docker principiantes contenedores visitas : 970  
 

Alex Garcia

Apasionado por el mundo de la informática aprendiendo cada día más. Fui finalista del CyberCamp del 2019 en el equipo de SJO. Me gustan los videojuegos y en mis ratos libres también escribo breves relatos e historias.

 
 
 

Artículos relacionados

¿Qué es Kubernetes?

Kubernetes es una plataforma open source desarrollada y diseñada por Google que agrupa un conjunto de dispositivos (host) que ejecutan contenedores Linux en clústers. Con Kubernetes obtienes una plataforma para programar…

Desarrollo Web: 20 Tutoriales para principiantes

Un sitio web no está compuesto sólo de bonitas fotos y gran contenido, sino también de complejos guiones que ponen todo en su lugar y hacen que todo el sitio…

Clicky