GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Los comandos [Docker] más útiles que todo el mundo debería conocer [Ejemplos]

Este tutorial continúa la serie de artículos relacionados con Docker y cubre los comandos de Docker más utilizados. Comenzaremos con una breve descripción general de Docker y luego pasaremos a la instalación de Docker en su servidor. A continuación, lo guiaremos a través de todos los comandos necesarios para administrar contenedores, imágenes y volúmenes de Docker. Conviértase en un usuario profesional de Docker siguiendo esta guía en 10 minutos.

Que es Docker

Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones. Es el estándar de facto para empaquetar y compartir aplicaciones, desde el escritorio hasta la nube.

Para lograr su objetivo, Docker utiliza contenedores.

El contenedor tiene las siguientes características:

  • Un contenedor es un paquete para el software y todas las bibliotecas necesarias.
  • Tan pronto como se inicia, un contenedor determina un entorno de tiempo de ejecución para su aplicación.
  • Un contenedor es más liviano que una máquina virtual, por lo que se puede lanzar mucho más rápido.
  • Un contenedor se distribuye en forma de imagen, que consta de varias capas. Múltiples contenedores pueden reutilizar estas capas.

Las funciones anteriores le permiten:

  • Cree entornos aislados para la implementación.
  • Inicie sus aplicaciones en minutos.

Docker lo ayuda a simplificar y automatizar cada paso del proceso de desarrollo de software.

Estas son las características esenciales de Docker:

  • Docker tiene una comunidad gigante.
  • Docker es una forma sencilla y ligera de distribuir software.
  • Docker tiene un repositorio público gigante de contenedores para todos los propósitos posibles.
  • Docker reduce los costos de desarrollo y operaciones.
  • La configuración de Docker es sencilla y rápida.
  • Docker proporciona aislamiento de aplicaciones.
  • La imagen de Docker tiene capas, que tiene control de versiones.
  • Docker automatiza cada paso de la gestión de contenedores.

Puede instalar Docker en los sistemas operativos Linux, macOS y Windows.

Instalar Docker

Esta sección describe cómo instalar el paquete Docker CE (edición comunitaria) en el sistema operativo Linux.

Si utiliza la nube de AWS, le sugiero un artículo sobre la instalación automática de Docker en la instancia EC2 mediante CloudFormation.

Instalar Docker en Ubuntu/Debian

De forma predeterminada, el repositorio predeterminado de Ubuntu o Debian no contiene la última versión del paquete Docker CE. Por lo tanto, deberá agregar el repositorio oficial de Docker CE a su sistema.

Antes de agregar el repositorio, instale algunas dependencias requeridas ejecutando el siguiente comando:

apt-get install apt-transport-https ca-certificates curl software-properties-common curl -y

Después de instalar todas las dependencias, importe la clave GPG de Docker con el siguiente comando:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

A continuación, agregue el repositorio oficial de Docker CE al archivo fuente APT con el siguiente comando:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"

Una vez que se haya agregado el repositorio, deberá actualizar el caché del repositorio. Puede actualizarlo con el siguiente comando:

apt-get update -y

Una vez que su repositorio esté actualizado, ejecute el siguiente comando para instalar la última versión de Docker CE en su sistema.

apt-get install docker-ce -y

El comando anterior instalará el paquete Docker CE en su sistema e iniciará el servicio automáticamente.

Puede verificar la versión instalada de Docker CE ejecutando el siguiente comando:

docker --version

Debería ver la versión de Docker en el siguiente resultado:

Docker version 19.03.13, build 4484c46d9d

Si desea eliminar el paquete Docker de su sistema, ejecute el siguiente comando:

apt-get remove docker-ce

Instalar Docker en CentOS/RHEL

Para el sistema operativo CentOS o RHEL, deberá instalar el repositorio Docker CE en su sistema. Puede usar el comando DNF para agregar y habilitar el repositorio de Docker CE como se muestra a continuación:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Una vez que se haya agregado el repositorio de Docker CE, puede enumerar todas las versiones disponibles de Docker CE ejecutando el siguiente comando:

dnf list docker-ce --showduplicates | sort -r

Debería obtener la lista completa en el siguiente resultado:

docker-ce.x86_64                3:19.03.13-3.el8                docker-ce-stable
Docker CE Stable - x86_64                        54 kB/s | 3.8 kB     00:00
CentOS-8 - Extras                                14 kB/s | 8.1 kB     00:00
CentOS-8 - Base                                 4.6 MB/s | 2.2 MB     00:00
CentOS-8 - AppStream                            4.7 MB/s | 5.8 MB     00:01
Available Packages

A continuación, instale la última versión de Docker CE ejecutando el siguiente comando:

dnf install docker-ce --nobest

Una vez que Docker esté instalado, verifique la versión instalada con el siguiente comando:

docker --version

Deberías obtener el siguiente resultado:

Docker version 19.03.13, build 4484c46d9d

Para iniciar el servicio Docker, ejecute el siguiente comando:

systemctl start docker

Para detener el servicio de Docker, ejecute el siguiente comando:

systemctl stop docker

También puede ejecutar el siguiente comando para mostrar más información sobre Docker:

docker info

Debería ver el siguiente resultado:

Si desea eliminar el paquete Docker de su sistema, ejecute el siguiente comando:

dnf remove docker-ce

Administración de contenedores con Docker

El docker container El comando se utiliza para administrar el ciclo de vida del contenedor. Si no tiene la imagen desde la que ejecutar el contenedor, Docker irá al registro, descárguelo.

Ejecutar contenedor Docker

Utilice la siguiente sintaxis para descargar la imagen del registro de Docker y crear un contenedor.

docker container run [your-image-name]

Por ejemplo, ejecute el siguiente comando para crear un contenedor de servidor web Apache:

docker container run httpd

Deberías obtener el siguiente resultado:

Puede usar la opción --rm con el comando de ejecución de Docker para eliminar un contenedor después de que salga.

docker container run --rm httpd

Conectar a Docker Container Shell

Puedes usar la opción -it con el comando de ejecución de Docker para crear e iniciar el contenedor Apache y adjuntarlo al shell bash interactivo.

docker container run -it httpd /bin/bash

Deberías obtener el siguiente resultado:

Iniciar contenedor Docker en segundo plano

Ahora puede ejecutar cualquier comando dentro del contenedor.

Puedes usar la opción -td con el comando de ejecución de Docker para crear e iniciar el contenedor de Apache y mantenerlo en ejecución.

docker container run -td httpd

Deberías obtener el siguiente resultado:

Configurar el nombre del contenedor Docker

Puedes usar la opción --name con el comando de ejecución de Docker para asignar un nombre de contenedor usando la siguiente sintaxis:

docker container run --name [container-name] -td [image-name]

Por ejemplo, cree un nuevo contenedor a partir de la imagen de Apache y asigne un nombre apacheweb con el siguiente comando:

docker container run --name apacheweb -td httpd

Enlazar contenedor Docker en el puerto específico

Si desea acceder al proceso de contenedor de la máquina externa, puede exponer un puerto de contenedor a la red externa.

En este caso, puedes usar la opción -p con el comando Docker para exponer el puerto específico como se muestra a continuación:

docker container run -p [host-port]:[container-port] --name [container-name] -dit [image-name]

Por ejemplo, cree un contenedor de servidor web apache y exponga el puerto del contenedor 80 al puerto 8080 con el siguiente comando:

docker container run -p 8080:80 --name apacheweb -dt httpd

Ahora puede acceder al servidor web apache que se ejecuta dentro del contenedor utilizando la URL http://localhost:8080 .

Lista de todos los contenedores Docker

Para enumerar todos los contenedores en ejecución y detenidos en su sistema, ejecute el siguiente comando:

docker ps -a

Debería ver todos los contenedores en el siguiente resultado:

Para enumerar solo los contenedores en ejecución en su sistema, ejecute el siguiente comando:

docker ps

También puede listar el contenedor con el siguiente comando:

docker container ls

Mostrar estadísticas del contenedor Docker

Para mostrar las estadísticas en vivo del contenedor en ejecución (utilización de CPU y memoria, E/S de red y disco) llamado apacheweb , ejecute el siguiente comando:

docker stats apacheweb

Debería ver el siguiente resultado:

Mostrar todos los procesos del contenedor Docker

Para enumerar todos los procesos en ejecución dentro del contenedor en ejecución llamado apacheweb , ejecute el siguiente comando:

docker top apacheweb

Debería ver el siguiente resultado:

Mostrar registros de contenedores de Docker

Para mostrar los registros del contenedor en ejecución llamado apacheweb , ejecute el siguiente comando:

docker logs apacheweb

Debería ver el siguiente resultado:

Iniciar, detener y pausar contenedor Docker

Para detener el contenedor en ejecución llamado apacheweb , ejecute el siguiente comando:

docker container stop apacheweb

Para iniciar el contenedor llamado apacheweb , ejecute el siguiente comando:

docker container start apacheweb

Para pausar el contenedor llamado apacheweb , ejecute el siguiente comando:

docker container pause apacheweb

Reiniciar o eliminar el contenedor Docker

Para reiniciar el contenedor en ejecución llamado apacheweb , ejecute el siguiente comando:

docker container restart apacheweb

Para eliminar el contenedor en ejecución llamado apacheweb , ejecute el siguiente comando:

docker container kill apacheweb

Adjuntar a un contenedor Docker que ya se está ejecutando

Para conectarse al contenedor en ejecución, ejecute el siguiente comando:

docker container exec -it apacheweb /bin/bash

Para ejecutar cualquier comando dentro del contenedor en ejecución, ejecute el siguiente comando:

docker container exec -it apacheweb ls

Administración de imágenes de Docker

En esta sección, le mostraremos algunos de los comandos más utilizados para administrar la imagen de Docker.

Descargar imagen de Docker desde el registro

Para descargar o extraer la imagen del registro de Docker, use la siguiente sintaxis:

docker pull [image-name]

Por ejemplo, puede extraer la imagen del servidor web Nginx del registro de Docker con el siguiente comando:

docker pull nginx

Deberías obtener el siguiente resultado:

Subir imagen de Docker al registro

Si desea cargar una imagen existente en el registro de Docker, use la siguiente sintaxis:

docker push [image-name]

Inicie sesión en Docker The Registry

Primero, deberá iniciar sesión en el registro de Docker con el siguiente comando:

docker login

Una vez que inicie sesión, ejecute el siguiente comando para obtener la identificación de la imagen de Nginx y etiquete la imagen con el siguiente comando:

docker images

Salida:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              f35646e83998        3 weeks ago         133MB
httpd               latest              3dd970e6b110        3 weeks ago         138MB

Agregar etiqueta a la imagen de Docker

A continuación, etiquete la imagen con el siguiente comando:

docker tag f35646e83998 amaksimov/nginx

donde:

  • f35646e83998 es la identificación de la imagen, amaksimov es el nombre de registro de Docker y nginx es el nombre de la imagen.

A continuación, inserte la imagen de Nginx en el registro de Docker con el siguiente comando:

docker push amaksimov/nginx

Debería ver el siguiente resultado:

Crear imagen Docker desde contenedor en ejecución

También puede crear una imagen a partir de un contenedor existente utilizando la siguiente sintaxis:

docker commit [container-name] [new-image-name]

Por ejemplo, cree una imagen desde el contenedor de Apache, ejecute el siguiente comando:

docker commit apacheweb apache-image

Para guardar su imagen existente en el archivo tar ejecutando el siguiente comando:

docker save apache-image > apache-image.tar

Historia de la imagen de Docker

Puede imprimir el historial de cualquier imagen de Docker con el siguiente comando:

docker history apache-image

Deberías obtener el siguiente resultado:

Eliminar imagen de Docker

Puede eliminar cualquier imagen de Docker con la siguiente sintaxis:

docker rmi [image-name]

Por ejemplo, si desea eliminar la imagen de Apache, deberá detener el contenedor que utiliza el httpd imagen:

docker container stop apacheweb
docker rm apacheweb

Primero, debemos eliminar apache-image imagen:

docker rmi apache-image

Solo después, eliminamos el httpd imagen con el siguiente comando:

docker rmi httpd

Con el tiempo, las imágenes y los contenedores creados manualmente pueden causar problemas en su servidor. Eche un vistazo a nuestras preguntas frecuentes de Docker para saber cómo limpiar todo.

Administración de volúmenes de Docker

Cuando crea un nuevo contenedor, almacena algunos datos y elimina el contenedor, los datos se perderán. En este caso, puede crear un volumen en el sistema host e iniciar un contenedor utilizando este volumen. Después de eliminar el contenedor, puede recuperar los datos del volumen. También puede usar el volumen de Docker para compartir los datos entre varios contenedores.

En esta sección, usaremos algunos docker volume con mayor frecuencia. comandos con ejemplos.

Crear volumen de Docker

Para crear un nuevo volumen llamado datavolume con el siguiente comando:

docker volume create datavolume

Lista de todos los volúmenes de Docker

Para enumerar su volumen creado, ejecute el siguiente comando:

docker volume ls

Debería ver el siguiente resultado:

Para imprimir más información sobre el volumen, ejecute el siguiente comando:

docker inspect datavolume

Debería ver el siguiente resultado:

Montar volumen en contenedor Docker

Para crear un nuevo contenedor llamado apacheweb y montar el volumen de datos en el sistema host en el directorio /mnt del contenedor, ejecute el siguiente comando:

docker run -it --name apacheweb1  --mount source=datavolume,destination=/mnt -td httpd

Volumen de acoplador remoto

Para eliminar el volumen, ejecute el siguiente comando:

docker volume rm datavolume

Preguntas frecuentes de Docker

Cómo eliminar imágenes Docker no utilizadas

Para eliminar todas las imágenes acoplables no utilizadas, debe ejecutar el siguiente comando:

docker rmi $(docker images -a -q)

Cómo eliminar todos los contenedores Docker salidos

Todos los contenedores de Docker que hayan salido se pueden eliminar ejecutando el siguiente comando:

docker rm $(docker ps -a -f status=exited -q)

Cómo detener y eliminar todos los contenedores Docker

Para detener todos los contenedores de Docker, debe ejecutar:

docker stop $(docker ps -a -q)

Para eliminar todos los contenedores Docker detenidos, debe ejecutar:

docker rm $(docker ps -a -q)

Cómo eliminar todas las imágenes, contenedores, volúmenes y redes de Docker sin usar

Para eliminar todos los recursos de Docker no utilizados, puede usar el siguiente comando:

docker system prune

Para eliminar completamente todos los recursos de Docker (usados ​​y no usados), ejecute el siguiente comando:

docker system prune -a

Resumen

En la guía anterior, aprendió sobre los comandos de Docker más utilizados y su uso con ejemplos. Espero que esto te ayude a realizar las tareas del día a día.


Docker
  1. 10 comandos que todo usuario de Linux debe conocer

  2. Algunos comandos DOCKER

  3. Comandos Nginx más útiles en el sistema Linux

  4. Los 10 comandos de Ubuntu Linux más útiles

  5. Ejemplos útiles del comando Docker ps

Alternativas de Kubernetes a los comandos de Docker

Todo lo que necesita saber sobre el uso de Docker Compose

21 comandos esenciales que todo usuario de Docker debe conocer

Los 50 comandos de Linux más útiles para ejecutar en la terminal

Los 50 comandos Zypper más útiles para usuarios de SUSE Linux

Comandos útiles de Bash que quizás no conozcas