Cómo instalar y usar Docker en CentOS 8 Linux

27 feb 2021 7 min di lettura
Cómo instalar y usar Docker en CentOS 8 Linux
Indice dei contenuti

Introducción

Docker es una tecnología de contenedorización que le permite crear, probar e implementar rápidamente aplicaciones como contenedores portátiles e independientes que pueden ejecutarse prácticamente en cualquier lugar.

En este tutorial, veremos cómo instalar Docker CE en CentOS 8 y exploraremos los conceptos y comandos básicos de Docker.

Prerrequisitos

Antes de continuar con este tutorial, asegúrese de que se cumplan los siguientes requisitos previos:

Si desea instalar Docker en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Docker en CentOS

Aunque el paquete Docker está disponible en el repositorio oficial de CentOS 8, es posible que no siempre sea la última versión. El enfoque recomendado es instalar Docker desde los repositorios de Docker.

Para instalar Docker en su servidor CentOS 8, haga lo siguiente:

Empiece por actualizar los paquetes del sistema e instalar las dependencias necesarias:

sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2

Luego, ejecute el siguiente comando que agregará el repositorio estable de Docker a su sistema:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Ahora que el repositorio de Docker está habilitado, instale la última versión de Docker CE (Community Edition) usando yum escribiendo:

sudo yum install docker-ce

Puede recibir un resultado similar al siguiente:

CentOS-8 - AppStream 113 kB/s | 4.3 kB 00:00
 CentOS-8 - Base 12 kB/s | 3.9 kB 00:00
 CentOS-8 - Extras 49 kB/s | 1.5 kB 00:00
 Docker CE Stable - x86_64 201 kB/s | 21 kB 00:00
 Error:
 Problem: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
 - cannot install the best candidate for the job
 - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
 - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
 - package containerd.io-1.2.2-3.el7.x86_64 is excluded
 - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
 - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
 - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
 (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Luego instale Docker Ce con el siguiente comando que le permite evitar paquetes que ya no están disponibles o están dañados:

sudo yum -y install docker-ce --nobest

Una vez que el paquete Docker esté instalado, inicie el demonio Docker y habilítelo para que se inicie automáticamente al inicio:

sudo systemctl start docker
sudo systemctl enable docker

Para verificar que el servicio Docker se esté ejecutando, escriba:

sudo systemctl status docker

La salida debería verse así:

● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active: active (running) since Wed 2020-01-15 00:06:26 CET; 4s ago
 Docs: https://docs.docker.com
 Main PID: 11075 (dockerd)
 Tasks: 18
 Memory: 51.6M
 CGroup: /system.slice/docker.service
 ├─11075 /usr/bin/dockerd -H fd://└─11091 containerd --config /var/run/docker/containerd/containerd.toml --log-level info

En el momento de escribir este artículo, la versión estable actual de Docker es 19.03.5, para imprimir el tipo de versión de Docker:

docker -v
Docker version 19.03.5, build 633a0ea

Ejecute el comando Docker sin Sudo

De forma predeterminada, Docker requiere privilegios de administrador. Si desea ejecutar comandos de Docker como un usuario no root sin anteponer sudo, debe agregar el usuario al grupo de Docker creado durante la instalación del paquete Docker CE. Puede hacer esto escribiendo:

sudo usermod -aG docker $USER

$USER es una variable de entorno que contiene su nombre de usuario.

Cierre la sesión y vuelva a iniciarla para actualizar la pertenencia al grupo.

Para verificar que Docker está instalado correctamente y que es posible ejecutar los comandos de Docker sin sudo, emita el siguiente comando que descargará una imagen de prueba , funcionará en un contenedor e imprimirá un mensaje "Hola desde Docker" y saldrá:

docker container run hello-world

La salida debería verse así:

Unable to find image 'hello-world:latest' locally
 latest: Pulling from library/hello-world
 1b930d010525: Pull complete
 Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5
 Status: Downloaded newer image for hello-world:latest

 Hello from Docker!
 This message shows that your installation appears to be working correctly....

Interfaz de línea de comandos de Docker

Ahora que tenemos una instalación de Docker en funcionamiento, pasemos a la sintaxis básica de la CLI de Docker.

La línea de comandos de Docker tiene la siguiente forma:

docker [option] [subcommand] [arguments]

Puede enumerar todos los comandos disponibles escribiendo docker sin parámetros:

docker

Si necesita más ayuda con cualquier [subcommand], simplemente escriba:

docker [subcommand] --help

Imágenes de docker

Una imagen de Docker se compone de una serie de capas que representan instrucciones en la imagen de Dockerfile que conforman una aplicación de software ejecutable. Una imagen es un archivo binario inmutable que incluye la aplicación y todas las demás dependencias, como binarios, bibliotecas e instrucciones necesarias para ejecutar la aplicación. En resumen, una imagen de Docker es esencialmente una instantánea de un contenedor de Docker.

Docker Hub es un servicio de registro basado en la nube que, entre otras funciones, se utiliza para mantener las imágenes de Docker en un repositorio público o privado.

Para buscar una imagen en el repositorio de Docker Hub, simplemente use el subcomando de search Por ejemplo, para buscar la imagen de CentOS, ejecute:

docker search centos

La salida debería verse así:

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
 centos The official build of CentOS. 5770 [OK]
 ansible/centos7-ansible Ansible on Centos7 126 [OK]
 jdeathe/centos-ssh OpenSSH /Supervisor /EPEL/IUS/SCL Repos - … 114 [OK]
 consol/centos-xfce-vnc Centos container with "headless" VNC session… 108 [OK]
 centos/mysql-57-centos7 MySQL 5.7 SQL database server 67
 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 57 [OK]
 tutum/centos Simple CentOS docker image with SSH access 44
 centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relational … 39
 kinogmt/centos-ssh CentOS with SSH 29 [OK]
 pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 10
 guyton/centos6 From official centos6 container with full up… 9 [OK]
 nathonfowlie/centos-jre Latest CentOS image with the JRE pre-install… 8 [OK]
 drecom/centos-ruby centos ruby 6 [OK]....

Como puede ver los resultados de la búsqueda imprimen una tabla con cinco columnas, NAME, DESCRIPTION, STARS, OFFICIAL y AUTOMATED. La imagen oficial es una imagen que Docker desarrolla en colaboración con socios.

Si queremos descargar la compilación oficial de CentOS 8, podemos hacerlo usando el subcomando image pull

docker image pull centos
Using default tag: latest
 latest: Pulling from library/centos
 729ec3a6ada3: Pull complete
 Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
 Status: Downloaded newer image for centos:latest
 docker.io/library/centos:latest

Dependiendo de su velocidad de Internet, la descarga puede tardar unos segundos o unos minutos. Una vez descargada la imagen, podemos listar las imágenes con:

docker image ls

La salida debería verse así:

REPOSITORY TAG IMAGE ID CREATED SIZE
 centos latest 0f3e07c0138f 3 months ago 220MB
 hello-world latest fce289e99eb9 12 months ago 1.84kB

Si por alguna razón desea eliminar una imagen, puede hacerlo con el subcomando image rm [image_name]:

docker image rm centos
Untagged: centos:latest
 Untagged: centos@sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
 Deleted: sha256:0f3e07c0138fbe05abcb7a9cc7d63d9bd4c980c3f61fea5efa32e7c4217ef4da
 Deleted: sha256:9e607bb861a7d58bece26dd2c02874beedd6a097c1b6eca5255d5eb0d2236983

Contenedores Docker

Una instancia de una imagen se llama contenedor. Un contenedor representa un tiempo de ejecución para una sola aplicación, proceso o servicio.

Puede que no sea la comparación más adecuada, pero si es un programador, puede pensar en una imagen de Docker como una clase y un contenedor de Docker como una instancia de una clase.

Podemos iniciar, detener, eliminar y administrar un contenedor con el subcomando docker container

El siguiente comando iniciará un contenedor Docker basado en la imagen de CentoOS. Si no tiene la imagen localmente, la descargará primero:

docker container run centos

A primera vista, puede parecerle que no ha pasado nada. El contenedor CentOS se detiene inmediatamente después de iniciarse porque no tiene un proceso de ejecución prolongado y no dimos ningún comando, por lo que el contenedor se inició, ejecutó un comando vacío y luego salió.

La -it nos permite interactuar con el contenedor a través de la línea de comandos. Para iniciar un tipo de contenedor interactivo:

docker container run -it centos /bin/bash

Como puede ver en el resultado una vez que se inicia el contenedor, el símbolo del sistema cambia, lo que significa que ahora está trabajando desde dentro del contenedor:

[root@31256e550edc /]#

Para enumerar los contenedores en ejecución, escriba:

docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 1d11ac462fb5 centos "/bin/bash" 6 seconds ago Up 5 seconds angry_volhard

Si no tiene ningún contenedor en ejecución, la salida estará en blanco.

Para ver los contenedores en ejecución y detenidos, use la opción -a

docker container ls -a

La salida debería verse así:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 1d11ac462fb5 centos "/bin/bash" 19 seconds ago Up 19 seconds angry_volhard
 31256e550edc centos "/bin/bash" 41 seconds ago Exited (127) 27 seconds ago epic_hypatia
 df0b941a0a14 centos "/bin/bash" 52 seconds ago Exited (0) 51 seconds ago nostalgic_goldwasser
 34912fcfaf8e hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago stupefied_rosalind

Para eliminar uno o más contenedores, simplemente copie el ID del contenedor (o ID) y péguelos después del container rm, así:

docker container rm 34912fcfaf8e

Conclusión

Aprendió cómo instalar Docker en su servidor CentOS 8 y cómo descargar imágenes de Docker y administrar contenedores de Docker. También puede leer sobre Docker Compose, que le permite definir y ejecutar aplicaciones Docker de varios contenedores.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.