Aprendizaje Docker, Parte 5: Comandos

La parte de hoy de la serie Docker, que estamos publicando, está dedicada a los equipos de Docker. La documentación de Docker contiene una descripción detallada de una gran cantidad de comandos, pero alguien que está comenzando a trabajar con esta plataforma puede perderse en ellos, por lo que aquí hay casi dos docenas de los comandos más importantes para trabajar con Docker. Continuando con la tradición establecida, compararemos equipos con una dispersión de bayas.

→ Parte 1: lo básico
→ Parte 2: términos y conceptos
→ Parte 3: archivos Dockerfile
→ Parte 4: reducir el tamaño de las imágenes y acelerar su ensamblaje
→ Parte 5: equipos
→ Parte 6: trabajar con datos


Revisar


Recordemos que las imágenes de Docker se crean en base a archivos de Dockerfile que describen todo lo que se necesita para construir imágenes. Además, no olvidemos que el contenedor es una imagen de Docker invocada a la vida. Para utilizar eficazmente los comandos de Docker, en primer lugar, debe averiguar, con qué está tratando, la imagen o el contenedor. Si piensa en imágenes y contenedores, puede ver que una imagen de Docker puede existir o no existir. Lo mismo puede decirse de los contenedores Docker. Un contenedor Docker existente, además, puede estar en un estado operativo o en un estado inactivo.

Una vez que descubra con qué necesita trabajar exactamente, puede encontrar el equipo adecuado.

Descripción general del comando Docker


Aquí hay algunas cosas que las personas que desean trabajar con Docker deben saber:

  • Los comandos de la interfaz de línea de comandos de Docker utilizados para controlar algo comienzan con la palabra clave docker seguida de un espacio, luego hay una indicación de a qué se dirigirá cierto comando, luego otro espacio, y luego el comando en sí sigue. Por ejemplo, así es como se construye un comando de este tipo: docker container stop .
  • Si el comando se dirige a una imagen o contenedor específico, entonces se utiliza el nombre o identificador de dicha imagen o contenedor.

Por ejemplo, el docker container run my_app es un comando para crear y ejecutar un contenedor llamado my_app . En los ejemplos a continuación, llamaremos a los my_container , images my_image , tags my_tag , etc.

Primero, consideraremos el equipo en sí, luego las banderas que se pueden usar con él, si tales banderas existen. Si la bandera tiene dos guiones en frente, entonces esta es su forma completa, una bandera con un guión es una versión abreviada de una bandera determinada. Actúan de la misma manera. Por ejemplo, -p es una forma abreviada de la bandera --port .

El propósito de este artículo es brindarle una descripción general de los comandos de Docker. Entonces, si tiene una idea general de ellos y conoce las funciones de la plataforma disponibles gracias a estos comandos, puede, si es necesario, encontrar información detallada sobre ellos. Los equipos en cuestión se prueban en el sistema operativo de la familia Linux utilizando el motor Docker versión 18.09.1 ​​y la versión API 1.39.

Una nota sobre los comandos admitidos por Docker CLI 1.13


La interfaz de línea de comandos de Docker versión 1.13 proporciona comandos actualizados, agrupados lógicamente. Al mismo tiempo, los equipos antiguos aún funcionan, pero es más fácil usar los nuevos, especialmente para los principiantes. Es, por ejemplo, que en la versión 1.12 docker create un comando del formulario docker create , y en la versión 1.13 el comando docker container create estuvo disponible. Puede encontrar información sobre cómo combinar equipos antiguos y nuevos aquí .

Primero miramos los comandos para administrar contenedores, luego discutimos la administración de imágenes.

Comandos de gestión de contenedores


El esquema de comando general para administrar contenedores es el siguiente:

 docker container my_command 

Aquí están los comandos que se pueden sustituir donde usamos my_command :

  • create : crea un contenedor a partir de una imagen.
  • start : inicia un contenedor existente.
  • run : crea un contenedor y ejecútalo.
  • ls : lista de contenedores en ejecución.
  • inspect : muestra información detallada sobre el contenedor.
  • logs : salida de registro.
  • stop : detiene el contenedor en ejecución enviando la señal SIGTERM al proceso del contenedor principal y, después de un tiempo, SIGKILL .
  • kill : detiene el contenedor en ejecución y envía la señal SIGKILL al proceso del contenedor principal.
  • rm : elimina un contenedor detenido.

Comandos de gestión de imagen


Para la gestión de imágenes, se utilizan comandos que se ven así:

 docker image my_command 

Estos son algunos de los equipos de este grupo:

  • build : construye la imagen.
  • push : envía la imagen al registro remoto.
  • ls : lista de imágenes.
  • history : muestra información sobre las capas de imagen.
  • inspect : muestra información detallada sobre la imagen, incluida información sobre las capas.
  • rm : elimina la imagen.

Diferentes equipos


  • docker version : docker version información de la docker version para el cliente y el servidor de Docker.
  • docker login registro de Docker.
  • docker system prune : elimine contenedores, redes e imágenes no utilizados a los que no se les haya asignado un nombre y una etiqueta.

Ahora considere estos comandos con más detalle.

Contenedores


▍ Comienzo de la existencia del contenedor.


En la etapa inicial de trabajar con contenedores, se utilizan los comandos create , start y run . Se utilizan, respectivamente, para crear un contenedor, lanzarlo y crearlo y lanzarlo.

Aquí está el comando para crear un contenedor a partir de una imagen:

 docker container create my_repo/my_image:my_tag 

En los siguientes ejemplos, la my_repo/my_image:my_tag se acortará a my_image .
El comando create acepta muchas banderas . Por ejemplo, se puede escribir de la siguiente forma:

 docker container create -a STDIN my_image 

La bandera -a es una forma corta de la bandera --attach . Este indicador le permite conectar el contenedor a STDIN , STDOUT o STDERR .

Una vez creado el contenedor, se puede iniciar con el siguiente comando:

 docker container start my_container 

Tenga en cuenta que puede consultar el contenedor en el comando utilizando su ID o nombre.

Ahora eche un vistazo al comando que le permite crear y ejecutar el contenedor:

 docker container run my_image 

Este comando también es capaz de aceptar muchos argumentos de línea de comando. Considere algunos de ellos con un ejemplo de tal construcción:

 docker container run -i -t -p 1000:8000 --rm my_image 

La bandera -i es la abreviatura de --interactive . Gracias a este indicador, la secuencia STDIN se mantiene abierta incluso si el contenedor no está conectado a STDIN .

La bandera -t es la abreviatura de --tty . Gracias a este indicador, se resalta un pseudo-terminal que conecta el terminal utilizado a las secuencias STDIN y STDOUT del contenedor.

Para poder interactuar con el contenedor a través del terminal, debe usar los indicadores -i y -t juntos.

La bandera -p es la abreviatura de --port . Un puerto es una interfaz a través de la cual un contenedor interactúa con el mundo exterior. Design 1000:8000 redirige el puerto Docker 8000 al puerto 1000 computadora en la que se ejecuta el contenedor. Si una determinada aplicación se está ejecutando en el contenedor que puede generar algo en el navegador, para acceder a ella, en nuestro caso, puede ir al navegador en localhost:1000 .

El indicador --rm elimina automáticamente el contenedor después de su finalización.

Veamos algunos ejemplos más del comando run :

 docker container run -it my_image my_command 

En dicho diseño, se puede usar el comando sh , que creará una sesión de terminal en un contenedor con el que se puede interactuar a través de su terminal. Cuando se trabaja con imágenes basadas en Alpine, es mejor enfocarse en usar sh lugar de bash , ya que en estas imágenes, por defecto, el bash no bash instalado. Para salir de la sesión interactiva, use el exit .

Tenga en cuenta que aquí combinamos las banderas -i y -t en -it .

Aquí hay otro ejemplo de trabajo con el comando run :

 docker container run -d my_image 

La bandera -d es la abreviatura de --detach . Este comando inicia el contenedor en segundo plano. Esto le permite utilizar el terminal desde el cual se inicia el contenedor para ejecutar otros comandos mientras se ejecuta el contenedor.

▍Confirmación del estado del contenedor


Si tiene contenedores Docker en ejecución y desea saber cuáles son estos contenedores, deberá enumerarlos. Puede hacer esto con el siguiente comando:

 docker container ls 

Este comando muestra una lista de contenedores en ejecución y proporciona a esta lista información útil sobre ellos. Aquí hay otro ejemplo de este comando:

 docker container ls -a -s 

El -a de este comando es la abreviatura de --all . Con esta tecla, puede mostrar información sobre todos los contenedores, y no solo sobre los que se ejecutan.

El --size -s es una abreviatura de --size . Le permite visualizar las dimensiones de los contenedores.

Aquí hay un comando que muestra información detallada sobre el contenedor:

 docker container inspect my_container 

Aquí está el comando que muestra los registros del contenedor:

 docker container logs my_container 

▍ Cierre de contenedores


Algunas veces un contenedor de trabajo necesita ser detenido. Para hacer esto, use el siguiente comando:

 docker container stop my_container 

Le permite dejar de ejecutar contenedores, lo que les permite apagarse correctamente. El contenedor tiene, por defecto, 10 segundos para apagarse.

Si el contenedor necesita detenerse rápidamente sin preocuparse por la finalización correcta de su trabajo, puede usar el siguiente comando:

 docker container kill my_container 

El comando kill , si compara el contenedor de trabajo con el televisor encendido, se parece a apagar el televisor desconectándolo de la electricidad. Por lo tanto, en la mayoría de las situaciones, se recomienda utilizar el comando de detención para detener los contenedores.

Aquí hay un comando que le permite detener rápidamente todos los contenedores en ejecución:

 docker container kill $(docker ps -q) 

Para eliminar un contenedor detenido, puede usar el siguiente comando:

 docker container rm my_container 

Aquí hay un comando que le permite eliminar todos los contenedores que no se ejecutaron al momento de llamar a este comando:

 docker container rm $(docker ps -a -q) 

Para resumir esta sección. Primero, se crea un contenedor, luego se inicia, o estos dos pasos se combinan usando un comando del formulario docker run my_container . Después de eso, se inicia la aplicación en contenedor.

Luego, el contenedor se detiene con el docker stop my_container . Para eliminar el contenedor, use el docker rm my_container .

Ahora hablemos de los comandos utilizados para trabajar con imágenes, con las plantillas a partir de las cuales se crean los contenedores.

Las imagenes


▍Creando imágenes


Aquí hay un comando que le permite recopilar imágenes de Docker:

 docker image build -t my_repo/my_image:my_tag . 

En este caso, se crea una imagen con el nombre my_image ; durante su ensamblaje, se utiliza el archivo Dockerfile ubicado en la ruta o URL especificada.

La bandera -t es la abreviatura de --tag . Le dice a Docker que la imagen que se creará debe tener asignada la etiqueta provista en el comando. En este caso, es my_tag .

El punto al final del comando indica que la imagen debe recopilarse utilizando el archivo Dockerfile ubicado en el directorio de trabajo actual.

Después de ensamblar la imagen, se puede enviar al registro remoto. Gracias a esto, otras personas podrán usarlo, se puede descargar y ejecutar en otra computadora. Suponga que quiere usar Docker Hub . Si es así, deberá crear una cuenta allí. El uso de este recurso es gratuito.

Después de registrarse en Docker Hub, debe iniciar sesión. Y aunque el comando que se utiliza para esto no se aplica directamente a los comandos destinados a trabajar con imágenes, será útil considerarlo aquí. Este es el siguiente comando:

 docker login 

Le permite iniciar sesión en su cuenta de Docker Hub. Para iniciar sesión, deberá ingresar un nombre de usuario y contraseña.

Después de iniciar sesión, puede enviar imágenes al registro. Se hace así:

 docker image push my_repo/my_image:my_tag 

Ahora que tiene varios tipos de imágenes, puede explorarlas usando comandos especiales.

▍ Investigación de imagen


Aquí está el comando que muestra una lista de imágenes, incluida, incluida la información sobre su tamaño:

 docker image ls 

El siguiente comando le permite mostrar información sobre las imágenes intermedias que componen la imagen, en particular, datos sobre sus tamaños y cómo se crearon:

 docker image history my_image 

Aquí está el comando que muestra información detallada sobre la imagen, incluidos los datos sobre las capas que componen la imagen:

 docker image inspect my_image 

Si crea tantas imágenes, puede suceder que algunas de ellas necesiten ser eliminadas.

▍Eliminar imágenes


Aquí está el comando que le permite eliminar la imagen especificada:

 docker image rm my_image 

Si la imagen se almacena en un repositorio remoto, no se eliminará desde allí.

Aquí hay un comando que le permite eliminar todas las imágenes locales:

 docker image rm $(docker images -a -q) 

Use este comando con precaución, pero debe tenerse en cuenta que cuando se usa, las imágenes almacenadas en el repositorio remoto no se eliminarán. Este es uno de los beneficios de almacenar imágenes en repositorios.

Examinamos los comandos básicos utilizados para administrar contenedores e imágenes. Ahora hablemos de algunos equipos más.

Diferentes equipos


Aquí está el comando que muestra información de versión para el cliente y servidor Docker:

 docker version 

Este comando, ya conocido por usted, se utiliza para ingresar al registro de Docker:

 docker login 

Este comando le permite eliminar contenedores, redes e imágenes no utilizados a los que no se les ha asignado un nombre y una etiqueta :

 docker system prune 

Aquí hay un ejemplo de su uso:

 docker system prune -a --volumes 

El -a es una abreviatura de --all , le permite eliminar imágenes no utilizadas, y no solo aquellas a las que no se les ha asignado un nombre ni una etiqueta.

El --volumes permite eliminar volúmenes no utilizados.

Resumen


En este artículo, cubrimos los comandos útiles de Docker. Si recién comienza a trabajar con Docker, debe prestar atención a los siguientes tres comandos más importantes:

Crear y ejecutar un contenedor:

 docker container run my_image 

Construir imagen:

 docker image build -t my_repo/my_image:my_tag . 

Subir la imagen a un repositorio remoto:

 docker image push my_repo/my_image:my_tag 

Para ver ayuda sobre los comandos de Docker, puede ejecutar el comando de Docker en la terminal. Aquí puede encontrar ayuda sobre la interfaz de línea de comandos de Docker.

La próxima vez hablaremos sobre trabajar con datos en Docker.

Estimados lectores! Si trabaja con Docker, probablemente tenga su propia lista de comandos de uso común. Si es así, comparta esta lista.

Source: https://habr.com/ru/post/440660/


All Articles