Docker es una plataforma que ayuda a los desarrolladores a crear y desplegar aplicaciones en contenedores. Ayuda a resolver los problemas de compatibilidad de los sistemas operativos proporcionando entornos virtualizados ligeros para gestionar esas aplicaciones.

La principal interfaz de línea de comandos (CLI) de Docker proporciona potentes herramientas a los desarrolladores que trabajan con contenedores. Empezando por el comando base docker, la CLI admite casi 60 subcomandos, la mayoría de los cuales aceptan varios argumentos de línea de comandos para abordar diferentes tareas.

Manos a la Obra con la CLI de Docker

Tu entorno Docker puede ser el Docker Engine de código abierto o la interfaz gráfica de usuario de Docker Desktop. La CLI será tu interfaz principal en un entorno Docker Engine, pero también tendrás acceso a la herramienta de línea de comandos si instalas Docker Desktop.

Creemos que incluso los usuarios de Docker Desktop terminarán pasándose a la CLI una vez que se familiaricen con al menos estos 20 comandos docker esenciales.

Comandos Docker que Debes Conocer

Profundicemos y averigüemos con qué comandos de Docker deberías estar más familiarizado.

1. docker system

El comando docker system ayuda a inspeccionar y gestionar el entorno Docker. Admite argumentos de línea de comandos para realizar tareas específicas relacionadas con la gestión, entre las que se incluyen:

  • df muestra cómo estás utilizando el disco
  • prune elimina redes, contenedores, imágenes o volúmenes no utilizados
  • info muestra información relacionada con el sistema
  • events muestra un registro de eventos del sistema en tiempo real

A continuación se muestra el mensaje inicial tras ejecutar docker system prune.

Captura de pantalla: el comando docker system prune.
Salida de docker system prune.

2. docker context

Este comando te ayuda a navegar y configurar diferentes contextos. En Docker, los contextos incluyen nombres, información de seguridad de la capa de transporte, configuraciones de endpoints y orquestadores.

Algunos de los argumentos docker context:

  • ls muestra los detalles del contexto por defecto
  • inspect [CONTEXT} inspecciona un contexto especificado
  • create [CONTEXT] crea un nuevo contexto
  • use [CONTEXT] cambia entre contextos

A continuación se muestra un ejemplo de la salida de docker context ls:

Captura de pantalla: el comando docker context.
Salida de docker context ls.

3. docker pause and unpause

El comando docker pause congela los procesos activos de un contenedor. Para ejecutarlo, debes especificar el nombre del contenedor, como se muestra a continuación:

docker pause [CONTAINER]

A continuación se muestra un ejemplo de la salida que puedes esperar tras pausar un contenedor.

Captura de pantalla: el comando docker pause.
Salida de docker pause.

El comando docker unpause reanuda los procesos pausados de un contenedor. Al igual que el comando anterior, debes especificar el nombre del contenedor, como se muestra a continuación:

docker unpause [CONTAINER]

A continuación se muestra un ejemplo de la salida que puedes esperar tras desbloquear un contenedor.

Captura de pantalla: el comando docker unpause.
Salida de docker unpause.

4. docker rm

Este comando elimina contenedores, volúmenes y redes. Permite seleccionar el componente a eliminar en función de sus atributos. Por ejemplo, puedes forzar la eliminación de contenedores en ejecución o de todos los contenedores especificados:

docker rm [CONTAINER] elimina el contenedor cuyo nombre se especifique. La salida de este comando está en la captura de pantalla siguiente.

Captura de pantalla: el comando docker rm.
Salida de docker rm.

5. docker rmi

Utiliza este comando para eliminar imágenes. Puedes eliminar una sola imagen o varias a la vez. Puedes describir la imagen a eliminar utilizando el ID corto o el ID largo. Este comando es importante para mantener el nodo host limpio y eficiente.

El comando para eliminar imágenes utiliza esta estructura:

docker rmi [IMAGE ID]

A continuación se muestra un ejemplo de su salida.

Captura de pantalla: el comando docker rmi.
Salida de docker rmi.

6. docker volume

Este comando te permite gestionar volúmenes en Docker. Puedes utilizarlo para crear, eliminar, listar e inspeccionar volúmenes.

Algunos de los argumentos de docker volume son:

  • create [OPTIONAL NAME] crea un nuevo volumen. Puedes especificar el nombre del volumen o dejar que Docker genere un nombre aleatorio.
  • ls lista los volúmenes disponibles
  • inspect [NAME] muestra información detallada del volumen.
  • rm [NAME] elimina un volumen de Docker.

A continuación se muestra un ejemplo de la salida tras crear un volumen.

Captura de pantalla: el comando docker volume create.
Salida de docker volume create.

7. docker search

Utiliza este comando para buscar imágenes de Docker Hub, que luego podrás ejecutar como contenedores en tu máquina. Te permite acceder a las imágenes del registro de Docker Hub sin visitar el sitio web.

El comando sigue esta estructura: docker search . Puedes especificar los nombres de las imágenes que buscas o crear un filtro.

A continuación se muestra un ejemplo de la salida de la siguiente consulta:

docker search --filter is-official=true --filter stars=500 mysql
Captura de pantalla: el comando Docker Search.
Salida de docker search.

8. docker push

El comando docker push te permite compartir tus imágenes en el registro Docker Hub o en un repositorio privado.

La estructura del comando es

docker push [OPTIONS] NAME[:TAG]

[OPTIONS] te permite establecer -disable-content-trust.

Por defecto, este valor es verdadero, y no es obligatorio incluirlo.

NAME[:TAG] requiere utilizar el nombre del registro, el repositorio y la etiqueta de imagen.

A continuación se muestra un ejemplo de la salida de docker push.

Captura de pantalla: el comando docker push.
Salida de docker push.

9. docker pull

Este comando descarga una imagen Docker de un repositorio en un registro privado o público.

El comando funciona así

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Este comando te permite utilizar imágenes existentes en lugar de crear otras nuevas siempre que debas crear una aplicación en contenedores.

El ejemplo siguiente muestra la salida de un comando docker pull:

Captura de pantalla: el comando docker pull.
Salida de docker pull.

10. docker ps

Por defecto, este comando muestra la lista de todos los contenedores en ejecución. Sin embargo, puedes añadir una bandera para listar los contenedores en función de atributos como el tamaño de uso del disco, los contenedores enlazados y las etiquetas.

El comando sigue la siguiente estructura:

docker ps [OPTIONS]

Algunos de sus argumentos son

  • -a muestra una lista de los contenedores en ejecución y de los que han finalizado
  • -s muestra el tamaño en disco y el tamaño virtual de cada contenedor

Puedes utilizar los dos juntos así:

docker ps -as

A continuación se muestra un ejemplo de la salida de un comando docker ps.

Captura de pantalla: el comando docker process status.
Parte de la salida del comando docker ps.

11. docker tag

Utiliza esta etiqueta para añadir metadatos, como la versión, a tu imagen. Las etiquetas suelen crearse cuando se construye una imagen, pero el comando docker tag te permite añadir una etiqueta más tarde, creando esencialmente un alias para la imagen de destino.

Este comando sigue la siguiente estructura:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

En el ejemplo siguiente, listamos imágenes con el nombre «redis» Tras etiquetar la imagen con un número de versión («2.0»), aparecen en la lista el nuevo alias y la imagen etiquetada originalmente.

Captura de pantalla: el comando docker tag.
Salida de docker tag.

12. docker rename

Utiliza este comando para renombrar un contenedor. Es útil cuando tienes varios contenedores y quieres diferenciarlos en función de su finalidad.

Este comando sigue la siguiente estructura:

docker rename [OLD_NAME] [NEW_NAME]

A continuación se muestra un ejemplo de salida antes y después de un comando docker rename.

Captura de pantalla: el comando docker rename.
Salida de docker rename.

13. docker commit

Este comando te permite crear nuevas imágenes después de realizar cambios en los archivos de un contenedor. Esto es importante porque te permite depurar un contenedor utilizando un shell interactivo.

Este comando sigue la siguiente estructura

docker commit [CONTAINER_ID] [name-of-new-image]

A continuación se muestra un ejemplo y una salida del comando docker commit command.

Captura de pantalla: el comando docker commit.
docker commit salida.

14. docker network

Es un comando de gestión de red que te permite crear potentes aplicaciones conectando servicios y contenedores.

El comando tiene la siguiente estructura:

docker network [OPTIONS]

Sus argumentos incluyen:

  • connect para conectar contenedores a redes
  • create para crear nuevas redes
  • disconnect para desconectar de las redes los contenedores en ejecución
  • rm para eliminar una o varias redes

A continuación se muestra la salida de un comando docker network create.

Captura de pantalla: el comando docker create.
Salida de docker network create.

15. docker history

Este comando proporciona el historial de una imagen especificada, ayudándote a comprender cómo se creó y mostrando el tamaño de la imagen.

El comando tiene la siguiente estructura:

docker history [IMAGE]

A continuación, vemos el historial asociado a la imagen redis:latest.

Captura de pantalla: el comando docker history.
Salida de docker history.

16. docker update

Este comando te permite actualizar la configuración de un contenedor. Ayuda a evitar que los contenedores consuman demasiados recursos del host Docker. El formato del comando es

docker update [OPTIONS] [CONTAINER]

Algunas de sus opciones son:

  • --restart actualiza la política de reinicio de un contenedor
  • --memory establece el límite de memoria de un contenedor
  • --cpus establece el número de CPUs asignadas

A continuación se muestra un ejemplo de salida de un comando docker update.

Captura de pantalla: el comando docker update.
Salida de docker update.

17. docker plugin install

Este comando te permite gestionar plugins. Es esencial porque permite añadir nuevas funcionalidades sin alterar las configuraciones del host Docker.

Los argumentos de docker plugin incluyen:

  • create para crear nuevos plugins
  • enable para activar plugins instalados
  • install para instalar nuevos plugins
  • rm para eliminar uno o varios plugins
  • ls mostrar una lista de plugins

A continuación, utilizamos docker plugin install para añadir un plugin a nuestro entorno. A continuación, utilizamos docker plugin ls para mostrar su estado.

Captura de pantalla: el comando docker plugin.
Salida de docker plugin ls.

18. docker container

Este comando te permite gestionar contenedores. Lo utilizas para realizar acciones como crear, detener y eliminar contenedores, entre otras.

Las opciones de docker container incluyen:

  • create para crear un contenedor
  • commit para crear una nueva imagen después de realizar cambios en un contenedor
  • exec para ejecutar comandos dentro de un contenedor en ejecución
  • kill para detener un contenedor en ejecución
  • ls para mostrar una lista de contenedores dentro de un host Docker
  • restart reiniciar un contenedor
  • run crear un contenedor a partir de una imagen y ejecutarlo
  • rm eliminar un contenedor de un servidor Docker

A continuación se muestra un ejemplo de la salida de un comando docker container.

Captura de pantalla: el comando docker container.
Salida de docker container restart.

19. docker logs

Este comando recupera los registros de un contenedor. Proporciona información sobre las operaciones de un contenedor, que puede ser esencial a la hora de depurar.

A continuación se muestra un ejemplo de la salida de un comando docker logs.

ejemplo-comando-docker-logs
Salida de docker logs.

20. docker swarm

Este comando ayuda a gestionar un enjambre Docker (Docker swarm) — un grupo de máquinas (virtuales o físicas) que ejecutan Docker y están configuradas para trabajar juntas en un clúster. Este comando facilita la configuración de un enjambre y el disfrute de sus ventajas.

A continuación se indican algunas de las opciones de docker swarm:

  • init para iniciar un enjambre
  • join para unirse a un enjambre
  • leave para abandonar un enjambre
  • update para actualizar un enjambre

A continuación se muestra un ejemplo y la salida de un comando docker swarm init.

ejemplo-de-comando-docker-swarm-init
Salida de docker swarm init.

Resumen

Docker es una herramienta eficaz para crear y gestionar aplicaciones en contenedores. Los comandos fáciles de entender de su CLI facilitan la creación y manipulación incluso de aplicaciones complejas.

Dominar los 20 comandos anteriores puede acelerar el desarrollo de tus aplicaciones en contenedores.

En Kinsta, muchos clientes de Alojamiento Administrado de WordPress utilizan nuestras herramientas DevKinsta basadas en Docker-Desktop para desarrollar y desplegar sus sitios web.

Los clientes del servicio de Alojamiento de Aplicaciones de Kinsta pueden trabajar con Docker y su proveedor de Git favorito (Bitbucket, GitHub o GitLab) para el control de versiones del código fuente y el despliegue rápido de aplicaciones en contenedores.

Steve Bonisteel Kinsta

Steve Bonisteel es un Editor Técnico de Kinsta que comenzó su carrera de redactor como periodista de prensa escrita, persiguiendo ambulancias y camiones de bomberos. Lleva tratando temas relacionados con la tecnología de Internet desde finales de la década de 1990.