¿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: