Comandos Docker: ejemplos y funciones

Docker es una plataforma popular de código abierto que facilita la creación, prueba, despliegue y gestión de aplicaciones en contenedores en un entorno consistente, portátil o virtual, como un VPS.

Aunque es una herramienta poderosa en tu arsenal de desarrollo, aprender los diferentes comandos de Docker puede llevar tiempo y esfuerzo. Los usuarios nuevos a menudo se benefician de tener a mano una hoja de trucos de Docker.

En este tutorial, te explicaremos cómo funciona Docker y te proporcionaremos la lista de comandos Docker más comunes.

Arquitectura Docker

La arquitectura Docker consta de cinco componentes principales: servidor, cliente, contenedor, imagen y registro.

Servidor Docker

Un servidor Docker o daemon Docker es un programa que se ejecuta en segundo plano en tu ordenador y gestiona contenedores e imágenes Docker. Cuando utilizas la interfaz de línea de comandos de Docker.

(CLI) para crear, ejecutar o gestionar contenedores, interactúas con el daemon Docker.

El daemon Docker es un componente esencial de la plataforma que garantiza que los contenedores puedan iniciarse y detenerse automáticamente al arrancar el sistema.

Cliente Docker

El cliente Docker permite a los usuarios interactuar con el daemon Docker mediante su interfaz de línea de comandos (CLI). En términos sencillos, es la parte principal de la arquitectura Docker para crear, gestionar y ejecutar aplicaciones en contenedores.

Cuando utilizas la CLI de Docker para pasar un comando, el cliente Docker envía el comando al daemon Docker que se ejecuta en tu ordenador, el cual lleva a cabo la operación solicitada. 

El cliente Docker puede instalarse en cualquier máquina que necesite interactuar con el daemon Docker, incluida tu máquina local, un servidor remoto o un servidor virtual.

Contenedor Docker

Un contenedor Docker es un paquete que contiene todos los requisitos previos necesarios para ejecutar una aplicación.

Los contenedores están diseñados para ser altamente portátiles, lo que significa que pueden trasladarse fácilmente de un entorno a otro, como del portátil de un desarrollador a un entorno de pruebas o de un entorno de pruebas a un entorno de producción.

Imagen Docker

Una imagen Docker es una plantilla preconfigurada que especifica lo que debe incluirse en un contenedor Docker. Normalmente, las imágenes se descargan de sitios web como Docker Hub. Sin embargo, también es posible crear una imagen personalizada con la ayuda de Dockerfile.

Registro Docker

El registro Docker es un repositorio central que almacena y gestiona imágenes Docker. Es un sistema basado en servidor que permite a los usuarios almacenar y compartir imágenes Docker con otros, facilitando la distribución y despliegue de aplicaciones. El registro Docker más notable es Docker Hub.

Comandos Docker

Ahora que ya sabes cómo funciona Docker, veamos algunos de los ejemplos de comandos Docker más populares.

Comandos de construcción

Docker utiliza el comando build para construir imágenes a partir de un archivo Docker. Algunos de los comandos más comunes son:

ComandoExplicación
docker buildConstruye una imagen a partir de un Dockerfile en el directorio actual
docker build https://github.com/docker
/rootfs.git#contenedor:docker
Construye una imagen desde un repositorio GIT remoto
docker build -t imagename/tagConstruye y etiqueta una imagen para facilitar su seguimiento
docker build https://yourserver/file.tar.gzCrea una imagen a partir de un archivo tar remoto
docker build -t imagen:1.0-<<EOFFROM busyboxRUN echo “hola mundo “EOFConstruye una imagen mediante un archivo Dockerfile que se pasa a través de STDIN

Comandos de limpieza

Para mantener limpio tu sistema y ahorrar espacio en disco, es una gran idea limpiar las imágenes, contenedores y volúmenes que no se utilicen. Consulta los siguientes comandos para más detalles:

ComandoExplicación
docker image pruneBorra una imagen no utilizada
docker image prune -aBorra todas las imágenes que no estén siendo utilizadas por contenedores
docker system pruneElimina todos los contenedores detenidos, todas las redes no utilizadas por los contenedores, todas las imágenes colgadas y toda la caché de construcción.
docker image rm imageElimina una imagen
docker rm containerElimina un contenedor en ejecución
docker kill $ (docker ps -q)Detiene todos los contenedores en ejecución
docker swarm leaveDeja un enjambre
docker stack rm stacknameElimina un enjambre
docker volume rm $(docker volume ls -f dangling=true -q)Elimina todos los volúmenes colgados
docker rm $(docker ps -a -q)Elimina todos los contenedores parados
docker kill $ (docker ps -q)Detiene todos los contenedores en ejecución

Comandos de interacción con el contenedor

Interactúa con tu contenedor Docker con los siguientes comandos comunes:

ComandoExplicación
docker start containerInicia un nuevo contenedor
docker stop containerDetiene un contenedor
docker pause containerPausa un contenedor
docker unpause containerDespausa un contenedor
docker restart containerReinicia un contenedor
docker wait containerBloquea un contenedor
docker export containerExporta el contenido del contenedor a un archivo tar
docker attach containerSe une a un contenedor en ejecución
docker wait containerEspera a que se termine el contenedor y muestra el código de salida
docker commit -m “commit message” -a “author” container username/image_name: tagGuarda un contenedor en ejecución como una imagen
docker logs -ft containerSigue los registros de contenedores
docker exec -ti container script.shEjecuta un comando en un contenedor
docker commit container imageCrea una nueva imagen a partir de un contenedor
docker create imageCrea un nuevo contenedor a partir de una imagen

Comandos de inspección de contenedores

A veces, necesitas inspeccionar tus contenedores para garantizar la calidad o solucionar problemas. Estos comandos te ayudan a tener una visión general de lo que están haciendo los distintos contenedores:

ComandoExplicación
docker psLista todos los contenedores en ejecución
docker -ps -aLista todos los contenedores
docker diff containerInspecciona los cambios en los directorios y archivos del sistema de archivos del contenedor
docker top containerMuestra todos los procesos en ejecución de un contenedor existente
docker inspect containerMuestra información de bajo nivel sobre un contenedor
docker logs containerReúne los registros de un contenedor
docker stats containerMuestra las estadísticas de uso de los recursos del contenedor

Comandos de gestión de imágenes

Algunos de los comandos de gestión de imágenes más comunes son:

ComandoExplicación
docker image lsLista imágenes
docker image rm mysqlElimina una imagen
docker tag image tagEtiqueta una imagen
docker history imageMuestra el historial de imágenes
docker inspect imageMuestra información de bajo nivel sobre una imagen

Comandos de ejecución

Docker utiliza el comando ejecutar para crear contenedores a partir de las imágenes proporcionadas. La sintaxis por defecto de este comando es la siguiente:

docker run (options) image (command) (arg...)

Después de la sintaxis por defecto, utiliza una de las siguientes flags:

FlagExplicación
–detach , -dEjecuta un contenedor en segundo plano e imprime el ID del contenedor
–env , -eEstablece variables de entorno
–hostname , -hEstablece un nombre de host a un contenedor
–label , -lCrea una etiqueta de metadatos para un contenedor
–nameAsigna un nombre a un contenedor
–networkConecta un contenedor a una red
–rmRetira el contenedor cuando se detenga
–read-onlyEstablece el sistema de archivos del contenedor como sólo lectura
–workdir , -wEstablece un directorio de trabajo en un contenedor

Comandos de registro

Si necesitas interactuar con Docker Hub, utiliza los siguientes comandos:

ComandoExplicación
docker loginAccede a un registro
docker logoutSale de un registro
docker pull mysqlExtrae una imagen de un registro
docker push repo/ rhel-httpd:latestEnvía una imagen a un registro
docker search termBusca en Docker Hub imágenes con el término especificado

Comandos de servicio

Gestiona todos los servicios con estos comandos básicos de Docker:

ComandoExplicación
docker service lsLista todos los servicios que se ejecutan en un enjambre
docker stack services stacknameLista todos los servicios en ejecución
docker service ps servicenameLista las tareas de un servicio
docker service update servicenameActualiza un servicio
docker service create imageCrea un nuevo servicio
docker service scale servicename=10Escala uno o más servicios replicados
docker service logs stackname servicenameLista todos los registros de servicio

Comandos de red

Si necesitas interactuar con la red Docker, utiliza uno de los siguientes comandos:

ComandoExplicación
docker network create networknameCrea una nueva red
docker network rm networknameElimina una red especificada
docker network lsLista todas las redes
docker network connect networkname containerConecta un contenedor a una red
docker network disconnect networkname containerDesconecta un contenedor de una red
docker network inspect networknameMuestra información detallada sobre una red

Conclusión

Docker es una gran herramienta para cualquiera que quiera probar los contenedores. La curva de aprendizaje puede ser pronunciada si no estás familiarizado con el desarrollo basado en contenedores. 

Por suerte, tener una tabla de trucos a mano puede acelerar el proceso, ya que todos los comandos comunes son fácilmente accesibles y no necesitas buscarlos en Internet.

Hemos cubierto los fundamentos de la arquitectura Docker y repasado todos los comandos de Docker básicos.

Esperamos que este artículo sobre Docker te haya resultado útil. Si tienes alguna pregunta, déjala en la sección de comentarios más abajo.

Comandos Docker – Preguntas frecuentes

A continuación algunas de las preguntas frecuentes sobre comandos Docker. 

¿Cómo listar los contenedores docker?

Para listar los contenedores Docker, simplemente ejecuta el comando “docker ps” en tu terminal. Esto mostrará una lista de los contenedores en ejecución. Si deseas ver todos los contenedores, incluyendo los detenidos, utiliza “docker ps -a”. 

¿Qué lenguaje usa docker?

Docker utiliza principalmente el lenguaje de programación Go para su desarrollo interno, lo que hace que Docker sea una herramienta ligera y rápida. 

Sin embargo, al trabajar con contenedores Docker, los usuarios tienen la alternativa de usar diferentes lenguajes de programación para desarrollar las aplicaciones que se ejecutan dentro de los contenedores.

Author
El autor

Diego Vargas

Diego es comunicador social, especialista en publicidad digital que trabaja constantemente en mejorar sus conocimientos de marketing digital, enfocándose en contenido y SEO. Idiomas, series, libros y cursos en internet son sus hobbies principales, además de los deportes. Este es su perfil de LinkedIn.