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 datosRevisar
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.
