Cómo instalar Docker en Ubuntu 18.04 LTS

Vamos a ver en este artículo cómo instalar Docker en Ubuntu 18.04 LTS paso a paso, de modo que tu servidor o VPS Ubuntu quede listo para empezar a trabajar con aplicaciones en contenedores.

Antes de instalar Docker en Ubuntu 18.04 LTS

Si tienes intención de completar esta breve guía de instalación de Docker en Ubuntu 18.04 LTS, debes satisfacer los siguientes requisitos mínimos:

  • Una instalación actualizada de Ubuntu 18.04 LTS Bionic Beaver.
  • Acceso a línea de comandos con un usuario con privilegios de sudo.
  • Conexión a Internet.

También necesitaremos algunas utilidades y comandos del sistema que obtendremos de los repositorios de Ubuntu 18.04, para lo que actualizamos las listas de paquetes:

~$ sudo apt update

E instalamos todo lo necesario:

~$ sudo apt install -y apt-transport-https gnupg wget

Cómo instalar el repositorio Docker en Ubuntu 18.04 LTS

Para asegurarnos de que trabajamos con las últimas versiones, instalaremos el repositorio oficial de Docker para Ubuntu 18.04 LTS, siendo el primer paso la creación del archivo para el repositorio:

~$ sudo nano /etc/apt/sources.list.d/docker.list

El contenido será una única línea con la fuente de paquetes para Ubuntu 18.04 Bionic Beaver:

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

Guardamos los cambios y cerramos el archivo.

Al tratarse de un repositorio firmado, será necesario instalar la clave pública con la que se firman los paquetes:

~$ wget https://download.docker.com/linux/ubuntu/gpg -O- | sudo apt-key add

Finalmente actualizamos los repositorios del sistema, incluyéndose también el repositorio de Docker que acabamos de configurar:

~$ sudo apt update

Cómo instalar Docker en Ubuntu 18.04 LTS

Para instalar Docker en Ubuntu 18.04 LTS descargaremos con apt los siguientes paquetes desde el repositorio oficial que acabamos de configurar:

~$ sudo apt install -y docker-ce docker-ce-cli containerd.io

Descargados e instalados los paquetes de Docker y todas sus dependencias, dos nuevos servicios se crean en Ubuntu 18.04, los servicios docker.service y containerd.service, o si prefieres las versiones cortas, docker y containerd. Estos dos servicios quedan en ejecución y habilitados para su inicio automático.

Es posible comprobar el estado de ambos servicios en cualquier momento con el comando systemctl status containerd docker:

como instalar docker en ubuntu 18.04 lts bionic beaver

Cómo saber la versión instalada de Docker en Ubuntu 18.04

Saber qué versión de Docker está instalada en Ubuntu 18.04 es muy sencillo, basta con lanzar el comando docker con el parámetro -v:

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

Cómo probar Docker en Ubuntu 18.04 LTS

Para probar Docker en Ubuntu 18.04 LTS hay que crear un contenedor desde alguna imagen, por ejemplo la de la aplicación hello-world:

~$ sudo 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/

Como la imagen de la aplicación hello-world no está presente la primera vez que se lanza el comando, se descarga y a continuación se ejecuta. De hecho, si se lanza Docker de nuevo para ejecutar esta aplicación ya no se descargará la imagen, puesto que ahora sí está disponible localmente:

~$ sudo docker run hello-world

docker en ubuntu 18.04 lts bionic beaver

Cómo usar Docker con usuarios comunes sin sudo

Si quieres que un usuario sin privilegios de sudo pueda utilizar Docker, bastará con añadirlo al grupo docker:

~$ sudo adduser chacho docker

El usuario podrá trabajar con Docker cuando vuelva a iniciar sesión:

~$ docker run hello-world

Hello from Docker!
...

Manejo básico de Docker en Ubuntu 18.04 LTS

Como hemos visto antes, podemos obtener imágenes de contenedores para Docker desde un repositorio público. Desde línea de comandos podemos buscar imágenes de contenedores disponibles:

~$ docker search ubuntu

La lista de resultados nos mostrará las imágenes disponibles que se ajusten a lo que buscamos, ofreciendo el nombre de la imagen, una descripción, si es una imagen oficial o no, valoraciones, etc.

Por ejemplo, la imagen llamada ubuntu (la que nos ofrecía como ejemplo la imagen hello-world) es una imagen oficial, así que podemos lanzarla con seguridad:

~$ docker run -it ubuntu

La imagen se descargará, ya que es la primera vez que la requerimos y no disponíamos de una copia local. Observa que hemos usado el parámetro -it, lo que nos permite lanzar el contenedor de forma interactiva:

~$ docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5d3b2c2d21bb: Pull complete
3fc2062ea667: Pull complete
75adf526d75b: Pull complete
Digest: sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2b
Status: Downloaded newer image for ubuntu:latest
root@631858a6fdab:/#

De hecho ahora tenemos disponible un intérprete de comandos ejecutándose en el nuevo contenedor Docker de Ubuntu, de manera que podremos lanzar comandos y trabajar como en una terminal cualquiera de este sistema:

root@631858a6fdab:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr
root@631858a6fdab:/#

Si abrimos una nueva terminal de Ubuntu 18.04 sin salir de la consola actual de Docker, podremos usar el comando docker psy nos mostrará todas las instancias de Docker que están corriendo en el sistema:

docker para ubuntu 18.04 lts bionic beaver

Veremos información como el identificador del contenedor, la imagen desde la que se ha instanciado, el comando en ejecución, el tiempo de ejecución y un nombre del contenedor más «amigable» totalmente aleatorio.

Si desde una nueva terminal lanzamos otra instancia de la imagen ubuntu, tal como hicimos antes, tendremos otro contenedor Docker activo, lo que podremos comprobar de nuevo con docker psen la terminal que usamos para monitorizar los contenedores:

docker sobre ubuntu 18.04 lts bionic beaver

En este ejemplo los contenedores que tenemos en ejecución son distintas instancias de la misma imagen, pero a efectos prácticos son entornos de ejecución totalmente distintos, incluso con sistemas de archivos independientes.

En principio, los cambios que realicemos dentro de un contenedor no afectan ni al sistema principal, Ubuntu 18.04 LTS en nuestro caso, ni a otras instancias de la misma imagen.

Para salir del intérprete de comandos del contenedor utilizamos el comando exit, que nos devolverá a la consola de Ubuntu 18.04:

root@a08fdf782c0d:~# exit
exit
~$

Para no estar creando constantemente nuevos contenedores desde la misma imagen, una vez creado un contenedor cuya ejecución ha finalizado, podremos lanzarlo de nuevo usando su identificador o nombre, que podemos obtener con el comando docker ps -a:

CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                      PORTS     NAMES
5caa78be38ae   ubuntu        "/bin/bash"   19 seconds ago   Exited (0) 6 seconds ago              affectionate_wescoff
ccc5f33fced0   ubuntu        "/bin/bash"   39 seconds ago   Exited (0) 4 seconds ago              sharp_mendel
ca7fc9973b1c   hello-world   "/hello"      14 minutes ago   Exited (0) 14 minutes ago             unruffled_archimedes

El parámetro -a muestra también los contenedores cuya ejecución ha finalizado, de modo que podremos recuperar sus identificadores o nombres de contenedor.

Podemos volver a lanzar cualquiera de los contenedores de Ubuntu ya creados mediante el comando start, indicando su identificador o nombre:

~$ docker start sharp_mendel

El contenedor queda en ejecución en segundo plano y podemos utilizar el comando exec para lanzar un intérprete de comandos:

~$ docker exec -it sharp_mendel bash
root@ccc5f33fced0:/#

Si al terminar la sesión de comandos en el contenedor salimos del intérprete de comandos para regresar a la consola de la máquina anfitriona Ubuntu 18.04, el contenedor seguirá en ejecución.

Para detener un contenedor en ejecución en segundo plano se usa el parámetro stop:

~$ docker stop sharp_mendel

Conclusión

Ya sabes cómo instalar Docker en Ubuntu 18.04 LTS, así que ya puedes empezar a trabajar con contenedores de aplicaciones en tu servidor o VPS Ubuntu.

Si tienes preguntas, dudas, sugerencias, alguna mejora que proponer, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya estás listo para trabajar con contenedores gracias a esta pequeña guía de instalación de Docker en Ubuntu 18.04 LTS? Si es así y deseas agradecérnoslo, la más mínima aportación ayuda mucho al mantenimiento de este sitio y la creación de más guías de Ubuntu 18.04 y Docker, y 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