En el siguiente paso, vamos a añadir el repositorio oficial de Docker a la lista de repositorios de nuestro sistema. Para hacer esto, crearemos un archivo llamado docker.list
dentro del directorio /etc/apt/sources.list.d
. Y, dentro de este archivo, añadiremos los datos del repositorio oficial de Docker, para que podamos instalar sus paquetes con la utilidad apt
.
Utilizaremos el comando lsb_release -cs
, para obtener el nombre de la distribución que estamos utilizando y poder configurar el repositorio correctamente para esta distribución. Como este ejemplo lo estamos realizando con la versión 20.04 LTS de Ubuntu Server, el nombre de la distribución que obtendremos será focal
. Tenga en cuenta que este nombre cambiará dependiendo de la versión que esté utilizando.
Otro detalle importante es que debemos indicar cuál es el canal de actualización que vamos a utilizar. Docker Engine tiene tres tipos de canales:
stable
: en este canal, se encuentran las versiones definitivas disponibles para su uso. El software se encuentra en la etapa GA (General Availability) del ciclo de vida del lanzamiento del software.
test
: en este canal, se hallan las versiones que están en una fase previa a la etapa GA (General Availability) y se encuentran preparadas para ser testeadas.
nightly
: en este canal, se sitúan las versiones que todavía no han sido liberadas y están en fase de desarrollo. Dichas versiones se crean diariamente con el estado de la rama principal del repositorio.
En nuestra instalación, seleccionaremos el canal stable
:
Después de la ejecución del comando anterior, el archivo docker.list
tendrá el siguiente contenido:
En este caso, podemos ver cómo el repositorio se ha configurado para una arquitectura de tipo amd64
, para la distribución focal
de Ubuntu y el canal stable
.
Instalación de Docker Engine
Una vez que hemos añadido el repositorio oficial de Docker, tenemos que volver a actualizar la lista de paquetes de nuestro sistema:
Ahora tenemos todo preparado para realizar la instalación de Docker Engine. Lo mínimo que necesitamos para tener instalado Docker Engine en una máquina Linux son estos dos paquetes:
docker-ce
: contiene la versión Community de Docker Engine.
containerd.io
: es el container runtime que usa Docker Engine.
De forma opcional, también podemos instalar el cliente oficial Docker CLI, que nos va a permitir interactuar con el servicio Docker daemon de Docker Engine:
docker-ce-cli
: contiene la versión Community de Docker CLI.
Aunque lo más habitual es instalar el cliente y servicio Docker daemon en la misma máquina, tenga en cuenta que los puede tener en máquinas separadas.
En nuestro caso, vamos a instalar Docker CLI y Docker Engine en la misma máquina, que será la opción más común:
En la página web oficial de Docker, puede encontrar más detalles sobre cómo realizar la instalación de Docker Engine en Ubuntu:
Comprobación de la instalación
Vamos a comprobar que la instalación se ha realizado de forma correcta ejecutando un comando que nos muestra información del cliente y del servicio Docker daemon.
Observe que vamos a ejecutar el comando como superusuario escribiendo sudo
antes del comando docker version
. Ahora explicaremos por qué lo hacemos:
Al ejecutar este comando, obtendremos una salida similar a esta:
1. Indica la versión del cliente Docker CLI.
2. Indica la versión de la API de Docker Engine que utiliza el cliente.
3. Indica la versión de Go que está utilizando el cliente.
4. Indica los siete primeros caracteres del hash SHA del commit que se ha utilizado para hacer la release de esta versión del cliente.
5. Indica la fecha de la release de esta versión del cliente.
6. Indica el sistema operativo y la arquitectura donde se está ejecutando el cliente.
7. Indica el contexto que está activo y está siendo utilizado por el cliente. Un mismo cliente puede tener configurados diferentes contextos para administrar clusters Swarm, clusters Kubernetes o nodos independientes con Docker Engine.
8. Indica que el cliente tiene activadas las características experimentales que todavía se encuentran en fase de testing.
9. Indica la versión de Docker Engine.
10. Indica la versión de la API de Docker Engine que utiliza el servidor y cuál es la mínima versión con la que puede comunicarse.
11. Indica la versión de Go que está utilizando el servidor.
12. Indica los siete primeros caracteres del hash SHA del commit que se ha utilizado para hacer la release de esta versión del servidor.
13. Indica la fecha de la release de esta versión del servidor.
14. Indica el sistema operativo y la arquitectura donde se está ejecutando el servidor.
15. Indica que el servidor tiene desactivadas las características experimentales de Docker Engine.
16. Indica la versión de containerd
y el hash SHA del commit que se está utilizando.
17. Indica la versión de runc
y el hash SHA del commit que se está utilizando.
18. Indica la versión de docker-init
y el hash SHA del commit que se está utilizando.
Si obtenemos una salida similar a la anterior, es que la instalación se ha realizado de forma correcta.
Ahora vamos a ejecutar el mismo comando, pero sin utilizar sudo
: