GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo gestionar contenedores Docker

Docker es una plataforma de software desarrollada para facilitar el despliegue de aplicaciones basadas en el concepto de contenedores. La plataforma se puede usar para crear, probar y distribuir aplicaciones al recopilarlas en unidades estandarizadas, llamadas "contenedores".

Los contenedores Docker se pueden considerar entornos aislados donde las aplicaciones se pueden ejecutar sin interferencia de otros procesos. De manera similar a lo que sucede con las máquinas virtuales, se asignan recursos computacionales específicos a cada contenedor. A diferencia de las máquinas virtuales, Docker no requiere ninguna emulación de hardware, sino que utiliza el hardware físico del host para cada contenedor.

Al ser eficiente en recursos y capaz de generar un rendimiento mejorado del sistema, la contenedorización puede verse como la evolución natural de la virtualización. Además, como cuentan con todo lo necesario para la correcta ejecución de las aplicaciones, incluidas bibliotecas, herramientas del sistema y códigos, los contenedores simplifican la implementación de una aplicación sin necesidad de preocuparse por la configuración del entorno de ejecución.

En este tutorial, aprenderá cómo administrar mejor los contenedores de Docker en Linux, descargar imágenes de Docker Hub, crear un nuevo contenedor y guardar una imagen del mismo.

Cuando la plataforma Docker no está presente en su sistema, se recomienda seguir nuestra guía sobre Cómo instalar Docker en Ubuntu 18.04.

Descargando imágenes

Los contenedores se crean a partir de imágenes. Por defecto estas imágenes se descargan de Docker Hub, un registro de imágenes oficiales proporcionado por la empresa.

Cualquiera puede alojar sus imágenes en Docker Hub. Esto permite el uso de imágenes preempaquetadas como base para sus aplicaciones.

Intente ejecutar el comando:

$ docker run centos

Docker buscará la imagen "centos" en el registro local. Si no lo encuentra (ya que no se ha descargado hasta ahora), Docker lo descargará de Docker Hub y construirá el contenedor con esta imagen.

La imagen utilizada no proporciona ningún resultado visual, pero puede ver el contenedor ejecutándose con el comando:

$ docker ps

para ver todos los contenedores existentes, tanto en ejecución como detenidos:

$ docker ps -a

Para ver la lista de imágenes descargadas, escriba:

$ docker images

Contenedores de construcción

Los contenedores son similares a las máquinas virtuales y son menos costosos en términos de recursos.

Intente construir uno con la imagen de centos descargada previamente:

$ docker run -it centos

El modificador "-it" permite el acceso al caparazón dentro del contenedor. El shell que se muestra no es de su sistema operativo sino del contenedor:todos los comandos se ejecutarán en el shell del sistema operativo presente dentro del contenedor (en este caso Ubuntu) y no en el shell del host.

Para salir del shell del contenedor y volver al shell del host, escriba:

$ exit

Para iniciar, detener o eliminar un contenedor:

$ docker start ID_or_container_name
$ docker stop ID_or_container_name
$ docker rm ID_or_container_name

Antes de iniciar o eliminar un contenedor, debe estar en estado de "detención".
Antes de bloquear un contenedor, debe estar en estado de "ejecutar".

Los contenedores son entornos aislados y, por lo tanto, están "cerrados" por definición. Para interactuar con su "contenido", asigne un puerto de comunicación.

$ docker run -p 8081:80 -d nginx
  • “docker run”:comando de inicio del contenedor.

  • “-p 8081:80”:expone el puerto 80 del contenedor en el puerto 8081 del host.

    • Si se trata de un contenedor que alberga un WebServer, acceda a él mediante "localhost:8081".

  • “-d”:ejecutar el contenedor en segundo plano.

  • “nginx”:imagen utilizada para construir el contenedor.

    • Si la imagen no está presente localmente, se descarga desde Docker Hub.

Imágenes de contenedores de construcción

Una vez hecho el contenedor y las "personalizaciones" necesarias, se recomienda la creación de la imagen relativa:todo lo que se inserta en el contenedor (instalación de módulos adicionales u otras personalizaciones) permanece en el contenedor y no en la imagen utilizada para la compilación. Si se elimina y se vuelve a crear, el contenedor no mostrará ninguno de los cambios realizados hasta ese momento.

Suponga que ha creado un contenedor con la imagen de CentOS e instaló Nginx. Si elimina el contenedor y lo vuelve a crear con la imagen de ubuntu, no tendrá Nginx en el contenedor ya que la imagen utilizada no lo contiene.

Para generar la imagen de un contenedor (y tener una copia de seguridad para recrear el contenedor con las mismas condiciones) ejecute el comando:

$ docker commit -m "List of changes made" -a "User name" container_id repository/image_name
  • "-m" se usa para escribir la lista de cambios para obtener un registro para consultar

  • "-a" se usa para indicar el nombre del usuario que genera la imagen

Este comando guarda la imagen en el registro local (visible a través de imágenes acoplables).

La imagen también se puede guardar en Docker Hub. Esto se puede hacer autenticándose primero en Docker Hub, usando Docker (desde shell), escribiendo:

$ docker login -u username
  • Se le solicitará que ingrese la contraseña para la autenticación en Docker Hub

$ docker push username/image_name

Linux
  1. Cómo compartir datos entre contenedores Docker

  2. Cómo listar contenedores Docker

  3. Cómo hacer una copia de seguridad y restaurar contenedores Docker

  4. Cómo pausar y reanudar contenedores Docker

  5. Cómo eliminar todos los contenedores de Docker

Cómo usar SSH en contenedores Docker [paso a paso]

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo detener los contenedores de Docker

Cómo nombrar o renombrar contenedores Docker

Cómo usar SSH en un contenedor Docker