Cómo utilizar contenedores Docker

Cómo utilizar contenedores Docker
Una fotografía de una persona programando en una computadora portátil.

Los contenedores son el elemento vital de cada instalación de Docker. Son la base de la plataforma Docker y te permiten ejecutar servicios en tu computadora sin preocuparte por dependencias y conflictos de versiones. Aquí te mostramos los conceptos básicos para crear, administrar y personalizar contenedores Docker con la herramienta Docker CLI.

Cómo buscar y extraer una imagen de Docker

Los contenedores Docker son un tipo especial de entorno de software que permite ejecutar programas de forma independiente del resto del sistema original. Para lograrlo, Docker utiliza “imágenes de software”. Se trata de copias estáticas de programas que sirven como base desde la que se inicia un contenedor.

Esta distinción entre imagen y contenedor le permite recrear y adaptar su software de cualquier forma que sea necesaria. Por ejemplo, puede tener una imagen como “httpd” pero crear dos contenedores distintos a partir de ella: “website1” y “website2”.

La forma más sencilla de buscar una nueva imagen de Docker es utilizar el searchsubcomando:

Una terminal que resalta la imagen Docker httpd desde la herramienta CLI.
Una captura de pantalla que muestra la imagen Docker httpd del sitio web Docker Hub.

Para descargar la imagen a su sistema, ejecute el siguiente comando:

Confirme que ha agregado correctamente su nueva imagen a su sistema usando el imagessubcomando:

Una terminal que resalta la imagen Docker httpd instalada en el sistema.

Creación de una nueva imagen mediante Dockerfiles

Además de extraer imágenes predefinidas de Docker Hub, puedes crear imágenes directamente desde la CLI de Docker. Esto resulta útil si quieres crear versiones personalizadas de paquetes de software existentes o trasladar nuevas aplicaciones a Docker.

Para hacer esto, primero crea una carpeta en tu directorio de inicio para tus archivos de compilación:

Crea un nuevo Dockerfile usando tu editor de texto favorito:

Pegue las siguientes líneas de código dentro de su nuevo Dockerfile:

Una terminal que muestra un ejemplo de configuración de Dockerfile para una imagen Nginx personalizada.

Cree una carpeta “sample-site” y copie o cree un sitio HTML básico:

Guarde su nuevo Dockerfile y luego ejecute el siguiente comando para compilarlo en su sistema:

Comprueba si tu nueva imagen de Docker está presente en tu lista de imágenes de Docker:

Una terminal que resalta la imagen personalizada generada a partir del subcomando de compilación.

Creación de una nueva imagen a partir de contenedores existentes

La herramienta Docker CLI también puede crear nuevas imágenes a partir de los contenedores que existen actualmente en su sistema. Esto resulta útil si ya está trabajando en un entorno existente y desea crear una nueva imagen a partir de su configuración actual.

Para ello, asegúrese de que su contenedor no esté ejecutándose actualmente:

Ejecute el commitsubcomando seguido del nombre de su contenedor, luego proporcione el nombre de su nueva imagen de Docker después de eso:

Una terminal que muestra el subcomando commit que crea una nueva imagen desde un contenedor Docker.

Confirme que su nueva imagen de Docker esté en su sistema ejecutando docker images.

Una terminal que resalta la nueva imagen personalizada de un contenedor Docker instalado en el sistema.

Cómo ejecutar y detener un contenedor Docker

Con la imagen de Docker lista, ya puedes empezar a usarla para crear tu primer contenedor. Para ello, utiliza el runsubcomando seguido del nombre de la imagen que quieres ejecutar:

Si bien esto funcionará para ejecutar su primer contenedor Docker, al hacerlo de esta manera se hará cargo de su sesión de shell actual. Para ejecutar su contenedor en segundo plano, agregue el -dindicador después del runsubcomando:

El runsubcomando también puede incluir una serie de indicadores adicionales que pueden cambiar el comportamiento de su nuevo contenedor Docker. Por ejemplo, el --nameindicador le permite agregar un nombre personalizable a su contenedor:

Por otro lado, puedes usar la --publishbandera para redirigir el puerto de red desde donde puedes acceder a tu contenedor Docker. Esto es útil principalmente si no quieres que tu contenedor tome el control de un puerto privilegiado:

Una captura de pantalla que muestra un navegador web que abre el sitio web alojado en el contenedor Docker personalizado.

Puede comprobar todos los contenedores Docker que se están ejecutando actualmente en su sistema ejecutando el siguiente comando:

De manera similar al runsubcomando, pstambién puede incluir una serie de indicadores que modificarán su comportamiento. Por ejemplo, para ver los contenedores que están inactivos actualmente, utilice el -aindicador:

Para apagar un contenedor en ejecución, use el stopsubcomando seguido del ID del contenedor o del nombre de su contenedor Docker:

Una terminal que muestra el proceso de apagado de un contenedor Docker actualmente en ejecución.

Puedes reiniciar cualquier contenedor que hayas detenido volviendo a ejecutar el startsubcomando:

Pausar y matar un contenedor Docker

La herramienta Docker CLI también te permite pausar y detener temporalmente un proceso de contenedor en ejecución. Esto puede ser útil si estás solucionando un problema con tu configuración de Docker y quieres aislar o detener un contenedor que funciona mal.

Comience ejecutando docker pspara enumerar todos los contenedores en ejecución en el sistema.

Busque el ID o el nombre del contenedor que desea administrar.

Una terminal que resalta el contenedor Docker personalizado que se ejecuta actualmente en el sistema.

Ejecute el pausesubcomando seguido del nombre del contenedor que desea suspender temporalmente:

Puede reanudar un proceso suspendido ejecutando el unpausesubcomando:

Para detener un proceso que funciona mal, ejecute el killsubcomando seguido del nombre de su contenedor:

Cómo inspeccionar un contenedor Docker

Conocer los detalles intrincados de su contenedor es fundamental para mantener la salud de su pila Docker. Le permite ver rápidamente cualquier problema potencial y puede ser la diferencia entre solucionar o rehacer toda su implementación.

Para ver una descripción general de su contenedor Docker, ejecute el inspectsubcomando:

Al hacer esto, se imprimirá una cadena JSON larga que describe el estado actual de todo el contenedor. Puede limitar esta información enviando la salida a jq o utilizando el indicador integrado -fseguido del objeto JSON que desea imprimir:

Una terminal que muestra el indicador de filtro para el subcomando de inspección en un contenedor Docker en ejecución.

Impresión de registros de contenedores en la terminal

Además de eso, también puedes rastrear e imprimir los registros de cualquier contenedor Docker que se esté ejecutando actualmente. Esto puede ser útil si quieres verificar cómo se comporta actualmente tu servicio y ver la salida que devuelve a STDOUT.

Para ello, ejecute el subcomando logs seguido del nombre de su contenedor:

También puede ejecutar el subcomando logs con el --followindicador para crear un registro continuo de su servicio Docker. Esto es similar a ejecutarlo tail -fal final de una tubería UNIX:

Una terminal que muestra los registros continuos de un contenedor Docker.

De manera similar a otros subcomandos, también puedes agregar varios indicadores para personalizar la salida del registro de tu contenedor Docker. Por ejemplo, el --timestampsindicador agrega una marca de tiempo detallada para cada mensaje que tu contenedor envía a su STDOUT:

La --detailsbandera imprimirá incluso las variables de entorno que hayas configurado para tu contenedor Docker actual. Mientras tanto, la --sincebandera te permite mostrar solo los registros que ocurrieron después de un punto en particular en el tiempo:

Una terminal que muestra una salida de registro más detallada de un contenedor Docker que se está ejecutando actualmente.

Cómo personalizar un contenedor Docker

En esencia, un contenedor Docker es una versión pequeña y simplificada de Linux que se ejecuta sobre el sistema actual. Esto significa que, de manera similar a una máquina virtual, es posible acceder a los datos dentro del contenedor y recuperarlos.

Para copiar un archivo local desde su máquina host al contenedor, ejecute el cpsubcomando:

A veces también necesitarás “entrar” en los contenedores abriendo un shell dentro de ellos. De esta manera, puedes editar archivos, instalar binarios y personalizarlos según tus necesidades:

Una terminal que muestra el proceso de acceso al shell raíz de un contenedor.

Ahora, podrías, por ejemplo, editar “index.html” y crear dentro de él una página de inicio para el sitio web.

Una terminal que muestra un archivo HTML copiado en el shell raíz de un contenedor Docker.

Para salir del shell del contenedor, presione Ctrl+ Do ejecute exiten la terminal.

Una terminal que resalta el comando de salida del shell raíz del contenedor Docker.

Cómo eliminar contenedores e imágenes de Docker

Eliminar los contenedores e imágenes de Docker que no se utilizan es una parte importante del mantenimiento general de la implementación. Esto le permite eliminar archivos innecesarios de su servidor, lo que le permite ahorrar espacio de almacenamiento a largo plazo.

Antes de eliminar un contenedor, asegúrese de haberlo detenido primero:

Ahora, elimine el contenedor usando el rmsubcomando:

Confirme que ha eliminado correctamente su antiguo contenedor Docker ejecutando docker ps -a.

Una terminal que muestra todos los contenedores Docker disponibles, incluidos los que se encuentran actualmente inactivos.

Elimina la imagen Docker original de tu implementación de Docker:

Una terminal que resalta el resultado de eliminar una imagen Docker del sistema.

Comprueba si has eliminado correctamente tu imagen Docker original ejecutando docker images.

Una terminal que muestra la lista de imágenes de Docker actualizada.

Aprender a crear, administrar y eliminar contenedores Docker son solo algunas de las cosas que puede hacer con su servidor Linux.

Crédito de la imagen: Shamin Haky vía Unsplash . Todas las modificaciones y capturas de pantalla son de Ramces Red.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *