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.
Tabla de Contenidos
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:
Comando | Explicación |
docker build | Construye 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/tag | Construye y etiqueta una imagen para facilitar su seguimiento |
docker build https://yourserver/file.tar.gz | Crea una imagen a partir de un archivo tar remoto |
docker build -t imagen:1.0-<<EOFFROM busyboxRUN echo “hola mundo “EOF | Construye 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:
Comando | Explicación |
docker image prune | Borra una imagen no utilizada |
docker image prune -a | Borra todas las imágenes que no estén siendo utilizadas por contenedores |
docker system prune | Elimina 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 image | Elimina una imagen |
docker rm container | Elimina un contenedor en ejecución |
docker kill $ (docker ps -q) | Detiene todos los contenedores en ejecución |
docker swarm leave | Deja un enjambre |
docker stack rm stackname | Elimina 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:
Comando | Explicación |
docker start container | Inicia un nuevo contenedor |
docker stop container | Detiene un contenedor |
docker pause container | Pausa un contenedor |
docker unpause container | Despausa un contenedor |
docker restart container | Reinicia un contenedor |
docker wait container | Bloquea un contenedor |
docker export container | Exporta el contenido del contenedor a un archivo tar |
docker attach container | Se une a un contenedor en ejecución |
docker wait container | Espera a que se termine el contenedor y muestra el código de salida |
docker commit -m “commit message” -a “author” container username/image_name: tag | Guarda un contenedor en ejecución como una imagen |
docker logs -ft container | Sigue los registros de contenedores |
docker exec -ti container script.sh | Ejecuta un comando en un contenedor |
docker commit container image | Crea una nueva imagen a partir de un contenedor |
docker create image | Crea 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:
Comando | Explicación |
docker ps | Lista todos los contenedores en ejecución |
docker -ps -a | Lista todos los contenedores |
docker diff container | Inspecciona los cambios en los directorios y archivos del sistema de archivos del contenedor |
docker top container | Muestra todos los procesos en ejecución de un contenedor existente |
docker inspect container | Muestra información de bajo nivel sobre un contenedor |
docker logs container | Reúne los registros de un contenedor |
docker stats container | Muestra 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:
Comando | Explicación |
docker image ls | Lista imágenes |
docker image rm mysql | Elimina una imagen |
docker tag image tag | Etiqueta una imagen |
docker history image | Muestra el historial de imágenes |
docker inspect image | Muestra 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:
Flag | Explicación |
–detach , -d | Ejecuta un contenedor en segundo plano e imprime el ID del contenedor |
–env , -e | Establece variables de entorno |
–hostname , -h | Establece un nombre de host a un contenedor |
–label , -l | Crea una etiqueta de metadatos para un contenedor |
–name | Asigna un nombre a un contenedor |
–network | Conecta un contenedor a una red |
–rm | Retira el contenedor cuando se detenga |
–read-only | Establece el sistema de archivos del contenedor como sólo lectura |
–workdir , -w | Establece un directorio de trabajo en un contenedor |
Comandos de registro
Si necesitas interactuar con Docker Hub, utiliza los siguientes comandos:
Comando | Explicación |
docker login | Accede a un registro |
docker logout | Sale de un registro |
docker pull mysql | Extrae una imagen de un registro |
docker push repo/ rhel-httpd:latest | Envía una imagen a un registro |
docker search term | Busca en Docker Hub imágenes con el término especificado |
Comandos de servicio
Gestiona todos los servicios con estos comandos básicos de Docker:
Comando | Explicación |
docker service ls | Lista todos los servicios que se ejecutan en un enjambre |
docker stack services stackname | Lista todos los servicios en ejecución |
docker service ps servicename | Lista las tareas de un servicio |
docker service update servicename | Actualiza un servicio |
docker service create image | Crea un nuevo servicio |
docker service scale servicename=10 | Escala uno o más servicios replicados |
docker service logs stackname servicename | Lista todos los registros de servicio |
Comandos de red
Si necesitas interactuar con la red Docker, utiliza uno de los siguientes comandos:
Comando | Explicación |
docker network create networkname | Crea una nueva red |
docker network rm networkname | Elimina una red especificada |
docker network ls | Lista todas las redes |
docker network connect networkname container | Conecta un contenedor a una red |
docker network disconnect networkname container | Desconecta un contenedor de una red |
docker network inspect networkname | Muestra 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.
Comentarios
March 18 2024
Muchas gracias ! me ha servido de mucha ayuda, bien explicado y preciso.