Comando básicos de Docker en Debian 10

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

Figura 1 – Logotipo de Docker

Requisitos previos

Para instalar contenedor Docker oficial para nginx requiere haber leído y debe tener instalado:

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

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

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

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

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

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

¡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.


PayPal - The safer, easier way to pay online!


También puede realizar su donativo con Bitcoin (BTC) en escaneando el siguiente código QR:

¡Ayúdame a continuar Blog de lcaballero.wordpress.com!

O usando en la siguiente dirección:

bitcoin:13uZUXXqLP3Ct3ksWHXnDqSrbMbhDV9hGz

One thought on “Comando básicos de Docker en Debian 10

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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s