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

Tutorial de Docker:Primeros pasos con Docker en Linux

Este tutorial detallado de Docker cubre los conceptos básicos de los comandos de Docker, por ejemplo, cómo crear un nuevo contenedor, cómo ejecutar el contenedor, eliminar un contenedor, cómo crear su propia imagen de Docker desde el contenedor, etc. ¡Empecemos!

Si aún no ha instalado Docker, consulte las siguientes guías:

  • Cómo instalar Docker en CentOS
  • Cómo instalar Docker en Ubuntu

Primeros pasos con Docker en Linux

Todos los pasos que se indican a continuación se prueban en la edición del servidor Ubuntu 18.04 LTS.

Antes de comenzar con Docker, permítanme aclarar qué es una imagen de Docker y un contenedor de Docker.

Una imagen de Docker es el archivo que decide cómo debe comportarse un contenedor, y el contenedor de Docker es la etapa en ejecución o parada de una imagen de Docker.

Los contenedores están aislados del resto de archivos del host.

Cuando ejecutamos un contenedor de Docker, utiliza un sistema de archivos aislado proporcionado por una imagen de Docker. La imagen de Docker consta de todo lo necesario para ejecutar una aplicación:todas las dependencias, configuración, scripts, archivos binarios, etc.

La imagen también contiene otra configuración para el contenedor, como variables de entorno, un comando predeterminado para ejecutar y otros metadatos.

1. Buscar imágenes de Docker

Podemos obtener las imágenes desde el registro, por ejemplo Docker hub , o crear el nuestro propio,  Para aquellos que se preguntan, Docker hub es un repositorio central en línea donde todos los usuarios de Docker compilan, prueban y guardan sus imágenes de Docker.

Docker hub tiene decenas de miles de imágenes de Docker. Puede buscar cualquier imagen de Docker con "docker search" comando.

Por ejemplo, para buscar imágenes acoplables basadas en Ubuntu, ejecute:

$ sudo docker buscar ubuntu

Salida de muestra:

Para buscar imágenes basadas en CentOS, ejecute:

$ sudo docker buscar ubuntu

Para buscar imágenes para AWS, ejecute:

$ sudo docker búsqueda aws

Para WordPress:

$ sudo docker buscar wordpress

Docker hub tiene casi todo tipo de imágenes. Ya sea un sistema operativo, una aplicación o cualquier cosa, encontrará imágenes de Docker preconstruidas en Docker hub.

Si algo que está buscando no está disponible, puede crearlo y ponerlo a disposición del público o mantenerlo privado para su propio uso.

2. Descargar imagen de Docker

Para descargar la imagen de Docker para el sistema operativo Ubuntu, ejecute el siguiente comando desde la Terminal:

$ sudo docker pull ubuntu

El comando anterior descargará la última imagen de Ubuntu del Docker hub .

Salida de muestra:

 Uso de etiqueta predeterminada:latestlatest:Tirando de la biblioteca / ubuntu6abc03819f3e:Tire 05731e63f211 completa:Tire completa 0bd67c50d6be:Tire digestión completa:sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5Status:Descargado imagen más reciente de Ubuntu:últimas 

También puede descargar una versión específica de la imagen de Ubuntu usando el comando:

$ docker pull ubuntu:18.04

Docker nos permite descargar cualquier imagen e iniciar el contenedor independientemente del sistema operativo host.

Por ejemplo, para descargar la imagen de CentOS, ejecute:

$ sudo docker pull centos

Todas las imágenes de Docker descargadas se guardarán en /var/lib/docker/ directorio.

Para ver la lista de imágenes de Docker descargadas, ejecute:

$ sudo docker imágenes

Salida de muestra:

ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOubuntu más reciente 7698f282e524 Hace 14 horas 69,9 MBcentos Más reciente 9f38484d220f Hace 2 meses 202 MBhello-world Más reciente fce289e99eb9 Hace 4 meses 1,84 kB

Como puede ver arriba, descargué tres imágenes de Docker:Ubuntu , Cent OS y hola-mundo .

Ahora, avancemos y veamos cómo iniciar o ejecutar los contenedores en función de las imágenes descargadas.

3. Ejecutar contenedores Docker

Podemos iniciar un contenedor de dos maneras, ya sea usando su TAG o ID DE IMAGEN .

ETIQUETA se refiere a una instantánea particular de la imagen y el ID DE LA IMAGEN es el identificador único correspondiente para esa imagen.

Como en los resultados anteriores "latest" es la ETIQUETA de todos los contenedores y 7698f282e524 es el IDENTIFICADOR DE IMAGEN de Ubuntu Imagen de Docker, 9f38484d220f es la identificación de la imagen de CentOS Docker y fce289e99eb9 es la identificación de la imagen de hello_world Imagen acoplable.

Una vez que haya descargado las imágenes de Docker de su elección, ejecute el siguiente comando para iniciar un contenedor de Docker utilizando su ETIQUETA.

$ sudo docker run -t -i ubuntu:último /bin/bash

Aquí,

  • -t :Asigna una nueva Pseudo Terminal dentro del contenedor de Ubuntu.
  • -i : nos permite hacer una conexión interactiva tomando el estándar en (STDIN) del contenedor.
  • ubuntu:latest :contenedor de Ubuntu con la ETIQUETA "más reciente".
  • /bin/bash :shell BASH para el nuevo contenedor.

O bien, puede iniciar el contenedor utilizando IMAGE ID como se muestra a continuación:

$ sudo docker run -t -i 7698f282e524 /bin/bash

Aquí,

  • 7698f282e524 - Identificación de la imagen

Después de iniciar el contenedor, aterrizará automáticamente en el caparazón del contenedor (símbolo del sistema):

Para volver a la Terminal del sistema host (en mi caso, es Ubuntu 18.04 LTS) sin terminar el Contenedor (sistema operativo invitado), presione CTRL+P seguido de CTRL+Q .

Ahora, regresará de manera segura a la ventana de terminal de su computadora host original. Tenga en cuenta que el contenedor aún se ejecuta en segundo plano y aún no lo finalizamos.

Para ver la lista de contenedores en ejecución, ejecute el siguiente comando:

$ sudo docker ps

Salida de muestra:

ID DEL CONTENEDOR IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES32fc32ad0d54 ubuntu:latest "/bin/bash" Hace 7 minutos Hasta 7 minutos modest_jones

Aquí,

  • 32fc32ad0d54 - Identificación del contenedor
  • ubuntu:latest - Imagen acoplable

Tenga en cuenta que el ID de contenedor y el ID de imagen de Docker son diferentes .

Para enumerar todos los contenedores disponibles (ya sea en ejecución o detenidos), ejecute:

$ sudo docker ps -a

Para detener (apagar el contenedor) desde el shell del host, ejecute el siguiente comando:

$ sudo docker stop 

Ejemplo:

$ sudo ventana acoplable parada 32fc32ad0d54

Para volver a iniciar sesión o conectarse al contenedor en ejecución, simplemente ejecute:

$ sudo docker adjuntar 32fc32ad0d54

Como ya sabes, 32fc32ad0d54 es el ID del contenedor.

Para apagar un contenedor desde el interior de su caparazón, escriba el siguiente comando:

# salida

Puede verificar la lista de contenedores en ejecución con el comando:

$ sudo docker ps

4. Cree sus imágenes de Docker personalizadas

Docker no es solo para descargar y usar los contenedores existentes. También puede crear su propia imagen acoplable personalizada.

Para hacerlo, inicie un contenedor:

$ sudo docker run -t -i ubuntu:último /bin/bash

Ahora, estarás en el caparazón del contenedor.

Luego, instale cualquier software o haga lo que quiera en el contenedor.

Por ejemplo, instalemos servidor web Apache en el contenedor.

# apt actualizar# apt instalar apache2

Del mismo modo, instale y pruebe cualquier software de su elección en el Contenedor.

Una vez que esté todo listo, regrese al shell del sistema host. No detenga ni apague el Contenedor. Para cambiar al shell del sistema host sin detener Container, presione CTRL+P seguido de CTRL+Q .

Desde el shell de su computadora host, ejecute el siguiente comando para encontrar el ID del contenedor:

$ sudo docker ps

Finalmente, cree una imagen de Docker del Contenedor en ejecución usando el comando:

$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache

Resultado de muestra:

sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962

Aquí,

  • 3d24b3de0bfc – Identificación del contenedor de Ubuntu.
  • ostechnix – Nombre del usuario que creó el contenedor.
  • ubuntu_apache – Nombre de la imagen acoplable creada por el usuario ostechnix.

Verifiquemos si la nueva imagen de Docker se crea o no con el comando:

$ sudo docker imágenes

Salida de muestra:

ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOostechnix/ubuntu_apache último ce5aa74a48f1 Hace aproximadamente un minuto 191 MB ubuntu último 7698f282e524 Hace 15 horas 69.9MBcentos Último 9f38484d220f Hace 2 meses 202MBhello-world Último fce289e99eb9 Hace 4 meses 1.84kB

Como puede ver en el resultado anterior, la nueva imagen de Docker se ha creado en nuestro sistema localhost desde el contenedor en ejecución.

Ahora, puede crear un nuevo Contenedor a partir de la imagen de Docker recién creada como de costumbre con el comando:

$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash

5. Eliminación de contenedores

Una vez que haya terminado toda la I+D con contenedores Docker, puede eliminarlos si ya no los quiere.

Para hacerlo, primero debemos detener (apagar) los contenedores en ejecución.

Averigüemos los contenedores en ejecución con el comando:

$ sudo docker ps

Salida de muestra:

ID DEL CONTENEDOR IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES3d24b3de0bfc ubuntu:latest "/bin/bash" Hace 28 minutos Hasta 28 minutos goofy_easley

Detenga el contenedor en ejecución usando su ID:

$ sudo docker parada 3d24b3de0bfc

Ahora, elimine el contenedor usando el comando:

$ sudo docker rm 3d24b3de0bfc

Del mismo modo, detenga todos los contenedores y elimínelos si ya no son necesarios.

Eliminar varios contenedores uno por uno puede ser una tarea tediosa. Entonces, podemos eliminar todos los contenedores detenidos de una sola vez, simplemente ejecute:

$ sudo docker container prune

Escribe "Y" y presiona ENTER tecla para borrar los contenedores.

¡ADVERTENCIA! Esto eliminará todos los contenedores detenidos. ¿Está seguro de que desea continuar? [s/n]  Contenedores eliminados:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0Total de espacio reclamado:5B 

Este comando solo funcionará con las últimas versiones de Docker.

6. Eliminar imágenes de Docker

Una vez que eliminó los contenedores, puede eliminar las imágenes de Docker que ya no necesita.

Para encontrar la lista de imágenes de Docker descargadas:

$ sudo docker imágenes

Salida de muestra:

ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOostechnix/ubuntu_apache última ce5aa74a48f1 hace 5 minutos 191MBubuntu última 7698f282e524 hace 15 horas 69.9MBcentos última 9f38484d220f hace 2 meses 202MBhello-world última fce289e99eb9 hace 4 meses1.8 

Como puede ver arriba, tenemos tres imágenes de Docker en nuestro sistema host.

Permítanos eliminarlos usando su ID de IMAGEN:

$ sudo docker rmi ce5aa74a48f1

Salida de muestra:

 Untagged:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cd 

Resolución de problemas

Docker no le permitirá eliminar las imágenes de Docker si las utilizan contenedores en ejecución o detenidos.

Por ejemplo, cuando intento eliminar una imagen de Docker con ID b72889fa879c , desde uno de mis antiguos servidores Ubuntu. Recibí el siguiente error:

Respuesta de error del daemon:conflicto:no se puede eliminar b72889fa879c (debe forzarse):la imagen está siendo utilizada por el contenedor detenido dde4dd285377

Esto se debe a que otro contenedor está utilizando la imagen de Docker que desea eliminar.

Entonces, verifiquemos el Contenedor en ejecución usando el comando:

$ sudo docker ps

Salida de muestra:

¡Ups! No hay ningún contenedor en ejecución.

Verifiquemos nuevamente todos los contenedores (en ejecución y detenidos) con el comando:

$ sudo docker ps -a

Salida de muestra:

Como puede ver, todavía hay algunos contenedores detenidos que usan una de las imágenes de Docker. Entonces, eliminemos todos los contenedores.

Ejemplo:

$ sudo ventana acoplable rm 12e892156219

Del mismo modo, elimine todos los contenedores como se muestra arriba usando la identificación de su contenedor respectivo.

Una vez que eliminó todos los contenedores, finalmente elimine las imágenes de Docker.

Ejemplo:

$ sudo docker rmi b72889fa879c

Eso es todo. Ahora verifique si hay otras imágenes de Docker en el host con el comando:

$ sudo docker imágenes

Ahora probablemente no verá ninguna imagen acoplable.

Leer a continuación:

  • Explicación de los conceptos de red de Docker
  • Explicación de los volúmenes de Docker con ejemplos
  • Una breve introducción a Dockerfile
  • Introducción a Docker Compose en Linux
  • Cómo ejecutar Docker como usuario no root en Linux
  • Tutorial de Podman:comience a utilizar Podman

Conclusión

En este completo tutorial de introducción a Docker, explicamos los conceptos básicos de Docker, como la creación, ejecución, búsqueda, eliminación de contenedores y también la creación de una imagen propia de Docker a partir del contenedor.

Espero que tenga una idea básica sobre el uso de Docker.

Para obtener más detalles, consulte los enlaces de recursos oficiales que se encuentran al final de esta guía o deje un comentario en la sección de comentarios a continuación.

Descargar libros electrónicos gratuitos de Docker:

Download - Free eBook: "Docker Containerization Cookbook" 
Download - Free Guide: "Understanding Docker" 
Download - Free Guide: "What is Docker and Why is it So Popular?" 
Download - Free Guide: "Introduction to Docker" 
Download - Free Guide: "Docker in Production" 

Lectura sugerida:

  • Cómo actualizar automáticamente los contenedores de Docker en ejecución
  • ctop:una herramienta de supervisión de línea de comandos para contenedores de Linux
  • Portainer:la forma más sencilla de administrar Docker
  • PiCluster:una sencilla aplicación de gestión de Docker basada en web
  • Dockly - Administrar contenedores Docker desde la terminal

Docker
  1. Primeros pasos con btrfs para Linux

  2. Consejos para empezar con GNOME

  3. Introducción a los cortafuegos de Linux

  4. Primeros pasos con PostgreSQL en Linux

  5. Primeros pasos con SSH en Linux

Tutorial de Vagrant:Primeros pasos con Vagrant en Linux

Tutorial de Podman:comience a usar Podman

Primeros pasos con Docker Compose en Linux

Comenzando con VirtualBox en Linux – Parte 1

Primeros pasos con Flutter en el escritorio de Linux

Tutorial de introducción a Azure Docker