Instalar Docker y Docker-compose en Ubuntu 18.04 LTS con Snap

Docker + Ubuntu 18.04

Una de las tareas que realizo a menudo como programador es instalar Docker en equipos nuevos. En esta pequeña guía encontrarás como instalarlo en Ubuntu 18.04.

Tiempo atrás, no conocía ni de que iba esta herramienta, y la mejor manera que encuentro para describirla es, como un híbrido entre un host de máquina virtual, junto con repositorio de imágenes. Con Docker, podemos hacer que nuestra aplicación corra en un entorno igual, en cualquier equipo o servidor, sin importar la versión de paquetes, distro o configuraciones que tenga el quipo donde va a correr. Esto nos evita problemas al momento de compartir aplicaciones.

Docker no viene incluido por defecto en Ubuntu 18.04. Si uno desea correrlo, escribiendo su nombre, nos mostrará 2 opciones:

  1. Instalarlo desde snap
  2. Instalarlo desde apt

Recomiendo instalarlo desde snap, ya que es la versión mas actualizada y completa, que incluye paquetes extra como Docker Compose. Para eso, abrimos la consola de Ubuntu y escribimos (sin el $):

$ snap install docker

Con lo cual, nos pedirá nuestra contraseña de superusuario, y procederá a instalar Docker.

Una vez terminado, podremos ver la versión que tenemos:

$ docker --version
Docker version 18.06.1-ce, build e68fc7a

Al intentar crear algún contenedor de prueba (hello-world en este caso), nos va a salir un error como este:

$ docker run hello-world
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Para resolver esto, vamos a crear un grupo llamado docker donde nos vamos a agregar:

$ sudo addgroup --system docker
$ sudo adduser $USER docker
$ newgrp docker

Y una vez realizado, cerramos nuetra sesión y volvemos a entrar. Podemos hacerlo desde el entorno gráfico o desde la consola, escribiendo:

$ sudo pkill -u ${USER}

Una vez de vuelta, debemos de reiniciar nuestro servicio de Docker, por si acaso:

$ sudo snap restart docker

Y listo! Nuestro ejemplo debe ahora correr sin mayor problema:

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

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

Escribí estas instrucciones para tenerlas a la mano cuando instalo en nuevos equipos :P. Cualquier duda, estoy a sus órdenes.

Fuentes:

  1. Docker Snap (archivado)
Written on January 9, 2019