Cómo instalar Docker en CentOS 7

En este artículo explicamos cómo instalar Docker en CentOS 7 paso a paso, de modo que en pocos minutos podrás empezar a trabajar con contenedores en tu servidor o VPS CentOS sin complicación alguna.

Antes de instalar Docker en CentOS 7

Para poder seguir los pasos de esta guía de instalación de Docker en CentOS 7 será necesario satisfacer los siguientes requisitos básicos:

  • Una máquina CentOS 7 actualizada.
  • Un usuario con permisos de sudo.
  • Conexión a Internet.

También necesitaremos algunas herramientas que obtendremos desde los repositorios de CentOS 7, así que actualizamos su información:

~$ sudo apt update

E instalamos los paquetes necesarios:

~$ sudo yum install -y wget

Cómo instalar el repositorio de Docker para CentOS 7

Para trabajar con la última versión estable vamos a instalar el repositorio oficial de Docker en CentOS 7. Configurar este repositorio es muy sencillo, ya que basta con descargar el archivo de repositorio directamente en el directorio de repositorios de yum:

~$ sudo wget https://download.docker.com/linux/centos/docker-ce.repo -P /etc/yum.repos.d/

Hecho esto, actualizamos las listas de paquetes:

~$ sudo yum update -y

Cómo instalar Docker en CentOS 7

Es el momento de instalar Docker en CentOS 7 desde el repositorio oficial que acabamos de configurar, para lo que necesitamos el paquete docker-ce, que instalamos con yum:

~$ sudo yum install -y docker-ce

Tras la descarga e instalación de Docker y sus dependencias disponemos de dos nuevos servicios en CentOS 7, los servicios docker y containerd, que no quedan en ejecución ni habilitados. Los ponemos en marcha de forma manual y los habilitamos para que inicien automáticamente con el sistema:

~$ sudo systemctl enable --now docker containerd

En cualquier momento podemos comprobar el estado de los servicios con systemctl status containerd docker:

como instalar docker en centos 7

Si quieres saber qué versión de Docker has instalado en tu máquina o VPS CentOS 7, puedes usar el comando docker:

~$ docker -v
Docker version 20.10.5, build 55c4c88

El caso anterior es la excepción, pero normalmente para lanzar comandos de Docker se necesita sudo.

Acceso a Docker sin sudo

Si quieres que tu usuario de trabajo pueda lanzar comandos docker sin necesidad de sudo es tan fácil como añadir el usuario al grupo docker:

~$ sudo usermod chacho -aG docker

Recuerda que este cambio se aplicará en el siguiente inicio de sesión del usuario.

Cómo probar Docker en CentOS 7

Los contenedores de Docker se instancian a partir de imágenes, pero inicialmente no disponemos de ninguna imagen de Docker en nuestro sistema, como podemos comprobar con el comando docker image ls:

~$ docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

El repositorio público de Docker contiene multitud de imágenes, pero no es necesario descargar explícitamente una determinada imagen para luego trabajar con ella, ya que si tratamos de lanzar Docker desde una imagen de la que no disponemos, se descargará previamente de forma automática.

Por ejemplo, probaremos con la típica imagen hello-world que mostrará un mensaje en pantalla:

~$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

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://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Veremos que se nos informa de que la imagen no está disponible localmente y se lanzará el proceso de descarga de su última versión para, a continuación, poder lanzar el contenedor cuya única misión es mostrar un mensaje en pantalla. El contenedor se cierra automáticamente tras la ejecución de la aplicación.

La siguiente vez que lancemos un nuevo contenedor desde la misma imagen, al estar esta disponible localmente no habrá que descargarla y se pasará directamente a la ejecución:

~$ docker run hello-world

Hello from Docker!
...

Podremos comprobar que la imagen está disponible en nuestra máquina CentOS 7 con el comando docker que utilizamos anteriormente:

~$ docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    d1165f221234   11 days ago   13.3kB

Contenedores interactivos

Vamos a lanzar un contenedor más complejo, como puede ser un sistema operativo, también CentOS en este ejemplo. Podríamos buscar la imagen con el comando docker search:

instalar docker en centos 7

Vemos que el primer resultado de la búsqueda «centos«, el más popular y mejor valorado, es precisamente una imagen oficial denominada también centos.

Ya sabemos que podemos lanzar directamente el contenedor, porque la imagen se descargará previamente si es necesario, pero para evitar que el contenedor se cierre automáticamente tras su ejecución, incluiremos el parámetro -it para que el contenedor inicie de forma interactiva, ya que dispone de shell:

~$ docker run -it centos

Una vez descargada la imagen se lanza el contenedor, apareciendo un nuevo intérprete de comandos que corresponde al sistema del contenedor, donde podremos lanzar comandos e interactuar de la misma forma que si de una terminal normal de CentOS 7 se tratara:

docker en centos 7

Si desde una nueva terminal de CentOS 7 comprobamos las imágenes locales de Docker, veremos que ya disponemos también de la que acabamos de utilizar:

~$ docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   11 days ago    13.3kB
centos        latest    300e315adb2f   3 months ago   209MB

Además podremos utilizar el comando docker ps -a para comprobar el estado de los contenedores con los que trabajamos:

docker sobre centos 7

En la lista que se muestra veremos además del contenedor de Centos en ejecución (en estado Up), los contenedores que lanzamos anterioremente y que ya finalizaron su ejecución (estado Exited).

Desde una nueva terminal es posible lanzar un nuevo contenedor totalmente independiente a partir de la misma imagen centos ejecutando el mismo comando docker run -i centos que usamos anteriormente. Haciendo esto aparecería con su propio identificador de contenedor en la lista de contenedores del comando docker ps -a.

Pero si lo que quieres es disponer de una segunda terminal de comandos del contenedor que ya está en ejecución, usaremos la opción exec del comando docker:

~$ docker exec -it e17a33fc67be bash

docker para centos 7

Observa que hemos indicado el identificador o ID del contenedor en ejecución sobre el que queremos ejecutar el comando, que en este caso es bash, y que indicamos el modo interactivo con el parámetro -it. De esta forma puedes tener distintas terminales abiertas sobre un mismo contenedor.

Pero también puedes tener varios contenedores en ejecución simultánea, instanciados desde la misma o distintas imágenes, y con una o varias terminales en ejecución, dependiendo de las necesidades de cada caso.

Conclusión

Así de fácil es instalar y trabajar con Docker en CentOS 7, por lo que podrás probar y trabajar con aplicaciones y sistemas aislados en sus propios contenedores sin tener que realizar complejas instalaciones y configuraciones.

¡Apoya este sitio!

¿Ya te has adentrado en el asombroso mundo de los contenedores de Docker en CentOS 7? Si es así y quieres agradecérnoslo ayudando al mantenimiento de este sitio y la creación de más tutoriales y guías, puedes hacerlo dejando una propina de tan sólo 1 $ desde PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

Deja un comentario