Este articulo explica los comando básicos de Docker Community Edition (CE) en Debian 10 Buster en modo de pruebas local en su PC.
La meta específica a lograr con este articulo es la siguiente:
- Uso y buenas prácticas de las distintas herramientas.
- Ejecutar algunos contenedores Docker.
- Flujo de trabajo aplicativo sobre la plataforma de Docker.
Introducción
Docker es una plataforma para desarrolladores y administradores de sistemas para desarrollar, implementar y ejecutar aplicaciones con contenedores.
Figura 1 – Logotipo de Docker
Requisitos previos
Para instalar contenedor Docker oficial para nginx requiere haber leído y debe tener instalado:
- Introducción a la contenedorización de aplicaciones con Docker.
- Docker Community Edition (CE) en Debian 10 Buster.
Comando básicos
Docker usa el formato de comando al estilo git, como se describe a continuación:
$ docker [OPTIONS] COMMAND [arg...]
Puede obtener una lista, tomada del comando docker help, proporciona un resumen rápido de los comando.
Comando para servicio Docker
Existen algunos comando relacionados con el servicio Docker, a continuación describo cada comando:
- events, Obtenga eventos en tiempo real del servidor.
- info, Mostrar información de todo el sistema.
- port, Busca el puerto público que está NAT-ed a PRIVATE_PORT.
- version, Mostrar la información de la versión Docker.
Puede probar por la interfaz de línea de comando que este correctamente instalado mostrando la versión instalada del cliente Docker, ejecute el siguiente comando:
$ docker --version Docker version 19.03.13, build 4484c46d9d
Si necesita ver mas detalles de las versiones instaladas del cliente y servicio Docker, ejecute el siguiente comando:
$ sudo docker version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:55 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:01:25 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
Como puede ver el comando anterior indica que tiene instalado un cliente y un servidor los cuales funcionan como componente de la arquitectura de Docker como se describe a continuación:
Figura 2 – Arquitectura de Docker
Como puede ver el usuario interactúa con el cliente que a su vez enviar tareas de gestión de contenedores e imágenes Docker y este a su vez si lo requiere interactúa con el Registro de Docker que actúa como un repositorio de imágenes publicas lista para ser usadas.
Comando para contenedores Docker
Existen algunos comando relacionados con el contenedores Docker, a continuación describo cada comando:
- attach, Adjuntar a un contenedor en ejecución.
- commit, Crear una nueva imagen a partir de los cambios de un contenedor.
- cp, Copie archivos / carpetas desde el sistema de archivos de un contenedor a la ruta de host.
- diff, Inspeccionar los cambios en el sistema de archivos de un contenedor.
- export, Transmite el contenido de un contenedor como un archivo tar.
- inspect, Devolver información de bajo nivel en un contenedor.
- kill, Matar a un contenedor en ejecución.
- logs, Obtener los registros de un contenedor.
- rm, Eliminar uno o más contenedores.
- run, Ejecutar un comando en un contenedor nuevo.
- restart, Reiniciar un contenedor en ejecución.
- pause, Pausa todos los procesos dentro de un contenedor.
- ps, Lista de contenedores.
- top, Buscar los procesos en ejecución de un contenedor.
- start, Comience un contenedor detenido.
- stop, Detener un contenedor en ejecución.
- unpause, Desempaquetar un contenedor en pausa.
- wait, Bloquear hasta que se detenga un contenedor, luego imprima su código de salida.
Ejecutar imagen
Verifica que el Docker CE esta instalado correctamente ejecutando la imagen simple por defecto llamada hello-world, con el siguiente comando:
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working
correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker
Hub. (amd64)
3. The Docker daemon created a new container from that image which
runs the executable that produces the output you are currently
reading.
4. The Docker daemon streamed that output to the Docker client,
which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container
with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
Como usted puedo ver en la explicación, Docker ha contactado con su sistemas de virtualización, este ha bajado la imagen hello-word del Docker Hub, este ha creado un nuevo contenedor, ha iniciado la imagen y ha mostrado el resultado de la ejecución mediante la terminal.
Consejo: cada vez que ejecuta el comando docker run el cliente Docker verificara si existe descargada la imagen en su PC, de lo contrario debe contactar al Docker Hub para descargar la imagen a usar.
Para más información de las opciones y parámetros del comando docker run, ejecute el siguiente comando:
$ docker run --help
Comando para imágenes Docker
Existen algunos comando relacionados con la gestión de imágenes Docker, a continuación describo cada comando:
- build, Construye una imagen desde un archivo Docker.
- images, Lista de imágenes.
- rmi, Eliminar una o más imágenes.
- save, Guardar una imagen en un archivo tar.
- tag, Etiquetar una imagen en un repositorio.
- history, Muestra la historia de una imagen.
- import, Crear una nueva imagen del sistema de archivos a partir del contenido de un tarball.
- load, Cargar una imagen de un archivo tar.
Comando para repositorios de imágenes Docker
Existen algunos comando relacionados con el repositorio de imágenes Docker (Docker Hub), a continuación describo cada comando:
- login, Registrarse o iniciar sesión en el servidor de registro de Docker.
- pull, Extraiga una imagen o un repositorio de un servidor de registro Docker.
- push, Empuje una imagen o un repositorio a un servidor de registro Docker.
- search, Buscar una imagen en Docker Hub.
A continuación la siguiente figura ilustra la manera en que el Cliente interactúa con Demonio Docker y su Registro de imágenes, vía linea de comando:
Figura 3 – Funcionamiento desde la linea de comando
Ejecutando Debian en contenedor Docker
Quizás la mejor manera de comenzar (¡después de instalar Docker, por supuesto!) Es usar el comando docker pull para obtener el último lanzamiento de Debian (más adelante sobre de dónde lo obtienes sobre Repositorio de imágenes Docker), entonces, lo primero es buscar las imágenes disponibles de Debian, ejecutando el siguiente comando:
$ docker search debian NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux… 7300 [OK] debian Debian is a Linux distribution… 2454 [OK] google/debian 52 [OK] …
Nota: Debian es una de las distribuciones GNU/Linux más ligeras.
Puede notar que hay muchas imágenes disponibles, entre esas, la imagen oficial, es la que se usara con el siguiente comando:
$ docker pull debian Using default tag: latest latest: Pulling from library/debian aa18ad1a0d33: Pull complete 942d41097fd2: Pull complete …
Nota: El comando ha descargado una imagen de Debian destinada a ser ejecutada en un contenedor.
Ahora puede proceder a ejecutar una serie de comando en el Debian, para ello inicie su contenedor indicando como argumento lo que necesita que ejecute:
$ docker run debian cat /etc/hostname f0208c0c981a
De esta forma puede usar su contenedor Docker con la imagen del sistema operativo Debian.
Ejecutando Ubuntu en contenedor Docker
Otra practica puede ser ejecutando un Ubuntu en un contenedor de Docker, con el siguiente comando:
$ docker run ubuntu cat /etc/issue Ubuntu 20.04.1 LTS \n \l
También puede iniciar una sesión de comando bash y dentro de la imagen de Ubuntu ejecutar un comando como el siguiente:
$ docker run -it ubuntu bash root@0ee71b6a3a46:/# cat /etc/issue Ubuntu 20.04.1 LTS \n \l root@0ee71b6a3a46:/# exit exit $
De esta forma puede usar su contenedor Docker con la imagen del sistema operativo Ubuntu.
Para más información de las opciones y parámetros del comando docker run, ejecute el siguiente comando:
$ docker run --help
Gestión de imágenes Docker
Las imágenes Docker pueden gestionarse por linea de comando, a continuación una recepta de comando de uso común para su gestión.
Consultar imágenes locales
Para consultar las imágenes descargadas previamente en su PC local, ejecute el siguiente comando:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE debian latest ef05c61d5112 40 hours ago 114MB ubuntu latest d70eaf7277ea 3 weeks ago 72.9MB hello-world latest bf756fb1ae65 10 months ago 13.3kB
Consejo: Con ese comando puede consultar una lista de las imágenes su tag instalado, el id de la imagen, su fecha de creación y el tamaño que ocupa.
Para más información de las opciones y parámetros del comando docker images, ejecute el siguiente comando:
$ docker images --help
Cada vez que ejecuta los comandos docker run o docker pull se descarga local en su PC las imágenes Docker desde el repositorio Docker Hub, estas son almacenadas de forma predeterminada en la ruta /var/lib/docker/ este directorio actúa como un directorio cache de las imágenes Docker.
Descargar imágenes
Puede utilizar el comando docker search para buscar imágenes disponibles a usar y descargar imágenes de forma local, por ejemplo, el comando a continuación:
$ docker search hola-mundo NAME DESCRIPTION STARS OFFICIAL AUTOMATED hola-mundo ¡Hola de DockerCon... 2 [OK] …
Para más información de las opciones y parámetros del comando docker search, ejecute el siguiente comando:
$ docker search --help
Para descargar una imagen del repositorio externo, se utiliza el comando docker pull, por ejemplo, el comando a continuación:
$ docker pull hola-mundo Using default tag: latest latest: Pulling from library/hola-mundo dcb2f4fbaabd: Pull complete Digest: sha256:03f13176a16b66c1af340b4d2660677f4e40beae70c4d5ed0eb6a4e49b3c02ac Status: Downloaded newer image for hola-mundo:latest
Nota: Cuando se ejecuta un contenedor con el comando docker run, las imágenes son descargadas automáticamente si no se encuentran en el repositorio local como «local copy is found».
Para más información de las opciones y parámetros del comando docker pull, ejecute el siguiente comando:
$ docker pull --help
Eliminar imágenes
Para eliminar las imágenes creadas o descargadas, ejecute el siguiente comando:
$ docker rmi IMAGE_ID
Nota: De esta forma puedes eliminar una imagen con el comando docker rmi.
Para más información de las opciones y parámetros del comando docker rmi, ejecute el siguiente comando:
$ docker rmi --help
Para más información de las opciones y parámetros del comando docker images, ejecute el siguiente comando:
$ docker images --help
Gestión de contenedores Docker
Los contenedores Docker pueden gestionarse por linea de comando, a continuación una recepta de comando de uso común para su gestión.
Consultar contenedores
Para consultar los contenedores creados, ejecute el siguiente comando:
$ docker container ls -as CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE bcb6b84b1f0d hello-world "/hello" 3 days ago Created trust_gold 0B (virtual 1.85kB) …
Nota: De esta forma puedes consultar un resumen de sus imágenes con el comando ls incluso yendo las inactivas con el parámetro -a y mostrando la columna del tamaño que ocupa con el parámetro -s.
Eliminar contenedores
Para eliminar los contenedores creados, ejecute el siguiente comando:
$ docker rm -v CONTAINER_ID
Nota: De esta forma puedes eliminar una imagen con el comando rm incluso yendo los volúmenes vinculados a esta imagen con el parámetro -v y asociando el id del contenedor.
Para más información de las opciones y parámetros del comando docker rm, ejecute el siguiente comando:
$ docker rm --help
Para más información de las opciones y parámetros del comando docker container, ejecute el siguiente comando:
$ docker container --help
Repositorio de imágenes Docker
Como he comentado anteriormente existe Docker Hub, el cual es un repositorio de imágenes Docker, en el cual puede encontrar y usar gran cantidad de imágenes con el software más popular listo para ser ejecutado.
Figura 4 – Ilustración del funcionamiento Docker Hub
Para los usuarios de VirtualBox sería similar a un conjunto de máquinas virtuales ya listas, es decir, usted en VirtualBox bajaría e importaría. Pero Docker le permite solo tener imágenes con un servicio como nginx o MySQL, en el caso de VirtualBox es necesario que a todo software le acompañe un sistema operativo anfitrión de ese servicio o programa a a ejecutar.
Figura 5 – Repositorio de imágenes Docker Hub
En la figura anterior puede apreciar una captura de pantalla del registro de Docker llamado «Docker Hub» donde se pueden ver las librerías registradas oficiales disponibles para descargar.
Un registro (registry) es un lugar donde almacenar imágenes de contenedores y es necesario en cuanto queramos crear nuestras propias imágenes Docker.
Formato de imágenes Docker
El formato de las imágenes Docker se compone de la nomenclatura «name-repository:tag». Una misma imagen puede tener múltiples tags.
Figura 6 – Tags del repositorio Debian en Docker Hub
Nota: El tag por defecto de una imagen es llamado «latest».
En los siguientes artículos de Docker, planeo publicar sobre:
- Gestión de Data de la aplicación.
- Creación de imágenes personalizadas.
- Publicación de imágenes docker creadas en registros privados o públicos para sus proyectos.
Conclusiones
De esta forma usted ha aprendido a:
- Ejecutar algunos los contenedores para pruebas Docker.
- Gestionar el servicio Docker vía consola de comando.
- Gestionar de las imágenes Docker.
- Gestionar de los contenedores Docker.
- Usar el repositorio de imágenes Docker.
Referencias
- Get Docker CE for Debian | Docker Documentation.
- How To Install and Use Docker on Debian 10.
- How to Install Docker on Debian 9 Stretch / Debian 8.
- Virtualización con Docker: primeros pasos.
¡Haz tu donativo!
Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dólares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.
También puede realizar su donativo con Bitcoin (BTC) en escaneando el siguiente código QR:
O usando en la siguiente dirección:
bitcoin:13uZUXXqLP3Ct3ksWHXnDqSrbMbhDV9hGz

Pingback: Instalar Docker en Debian 10 | Leonardo J. Caballero G.