¿Cómo instalar Docker en Ubuntu? + Ejemplo

En este post veremos cómo instalar Docker y ejecutaremos un container de ejemplo para probar su funcionamiento.

  • Hacemos un update de nuestra VM
$ sudo apt update

  • Instalamos lo siguiente para poder usar los repositorios por https:
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

  • Agregamos la clave GPG de Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  • Agregamos el repositorio de Docker(no es necesario especificar la versión porque ya la obtenemos con "lsb_release"):
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

  • Actualizamos de nuevo:
$ sudo apt-get update

  • Instalamos los paquetes:
$ sudo apt install docker-ce docker-ce-cli containerd.io

  • Una vez instalado probamos si funciona:
$ docker ps

  • En caso de que nos diga que no tenemos permisos, agregamos nuestro usuario (ubuntu o el que sea) al grupo docker:
$ sudo adduser ubuntu docker

  • Nos deslogueamos para que tenga efecto:
$ logout

Container de ejemplo:

Como primer ejemplo vamos a crear un servidor apache que tenga una página web estática.

  • Creamos un directorio:
$ mkdir ejemplo && cd ejemplo

  • Creamos un index.html de ejemplo:
$ nano index.html
<!DOCTYPE html>
<html>
<head>
<title>Primer ejemplo docker</title>
</head>
<body style="background:#2c3e50;font-family:ubuntu">
    <h1 style="color:white">Ejemplo funcionando</h1>
</body>
</html>

  • Luego vamos a crear un dockerfile:
$ nano Dockerfile

  • Agregamos lo siguiente:
FROM httpd:2.4
ADD index.html /usr/local/apache2/htdocs/

Con FROM indicamos la imagen base que vamos a usar:

  • "httpd": es el nombre de la imagen en Docker Hub
  • "2.4": es el tag de la imagen que nos indica la versión.

ADD es una instrucción que agrega el archivo index.html dentro de la imagen en el path indicado (/usr/local/apache2/htdocs/).

  • Creamos la imagen:
$ docker build -t apache-ejemplo .

No olvidar poner el "."

  • Ejecutamos un container a partir de la imagen anteriormente creada:
$ docker run --name container-ejemplo -d -p 9000:80 apache-ejemplo

  • Probamos si funciona entrando desde algún navegador: