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
Construye una imagen a partir de un Dockerfile en el
docker build
directorio actual
docker build [Link]
Construye una imagen desde un repositorio GIT remoto
/[Link]#contenedor:docker
Construye y etiqueta una imagen para facilitar su
docker build -t imagename/tag
seguimiento
docker build [Link] Crea una imagen a partir de un archivo tar remoto
docker build -t imagen:1.0-<<EOFFROM busyboxRUN Construye una imagen mediante un archivo Dockerfile
echo «hola mundo «EOF 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
Elimina todos los contenedores detenidos, todas las redes no utilizadas por los
docker system prune
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
Elimina todos los volúmenes colgados
volume ls -f dangling=true -q)
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
Exporta el contenido del contenedor a un archivo
docker export container
tar
docker attach container Se une a un contenedor en ejecución
Espera a que se termine el contenedor y muestra
docker wait container
el código de salida
docker commit -m “commit message” -a “author” container Guarda un contenedor en ejecución como una
username/image_name: tag imagen
docker logs -ft container Sigue los registros de contenedores
docker exec -ti container [Link] 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
Inspecciona los cambios en los directorios y archivos del sistema de archivos del
docker diff container
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.