En esta guía te mostraremos cómo instalar Docker en Ubuntu Server 20.04. Si estás corriendo otra distribución, visita la documentación oficial de Docker en este enlace.
Dependiendo del sistema operativo utilizado, realizar la instalación de Docker y docker-compose (sólo Linux)
Instalación en CentOS 7+sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce sudo systemctl start dockerInstalación en Ubuntu 16.04+
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-get install docker-ceUbuntu(todas las versiones)
sudo apt-get update
Docker-compose En sistemas Linux, es necesario instalar docker-compose adicionalmente:
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Identificamos la versión de docker-compose para verificar su funcionamiento.
Finalmente, se crea un grupo docker y se agrega el usuario actual para poder ejecutar comandos sin necesidad de ser usuario root.
``` sudo groupadd docker sudo usermod -aG docker $USER ```
Reiniciamos la sesión en el sistema. En caso de utilizar una máquina virtual es necesario reiniciarla para que los cambios surtan efecto.
Si la instalación se realizó correctamente, ejecutamos el siguiente comando para levantar el contenedor hello-world: docker run hello-world
El resultado indica los pasos que se realizaron para descargar la imagen hello-world y desplegarla en un contenedor:
Despliegue de servicios
Una vez finalizada la instalación de Docker, podemos realizar el despliegue de los contenedores de forma sencilla mediante la definición de un archivo en formato yaml que contiene la información necesaria para su configuración.
Asuntos a tener en cuenta luego de instalar Docker
Docker está pensado para ser usado a nivel usuario y no es recomendable usarlo como root. Es por eso que si no tienes un usuario para correr Docker, te propondremos crear uno y agregarlo a los grupos de usuario correspondiente.
Te mostramos aquí cómo hacerlo:
Recuerda reemplazar USUARIO por el usuario real que estés creando en sistema.
- Crea el usuario.
adduser USUARIO - Agrégalo ahora a los grupos de sudo y Docker.
usermod -aG sudo USUARIO
usermod -aG docker USUARIO - Toma control de la consola con el nuevo usuario.
su USUARIO - Intenta correr el "hola mundo" con el usuario para ver si todo va bien.
sudo docker run hello-world
Ejemplo: Cómo desplegar una instancia de "ubuntu" dentro de un servidor
Parece redundante, pero creando un contenedor de un sistema operativo te será útil para realizar pruebas de configuración sin comprometer el sistema operativo de tu servidor.
- Accede a tu consola de comandos SSH con el usuario que acabas de crear.
- Descargamos la imagen (en este ejemplo se usará "ubuntu").
docker pull ubuntu - Crea el contenedor.
docker run ubuntu - Lista los contenedores y copia el ID.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5eb116713b8b ubuntu "/bin/bash" 31 minutes ago Up 24 seconds hopeful_babbage - Enciende el contenedor.
docker start 5eb116713b8b - Conéctate al contenedor.
docker attach 5eb116713b8b - Dentro del contenedor, actualizamos los paquetes.
[email protected]:/# apt update & apt upgrade - Instala y configura lo que necesites.
- Al terminar de trabajar podrás salir del contenedor, y este se apagará. Para encenderlo, vuelve a correr el comando del paso 5.
[email protected]:/# exit
Ejemplo: Cómo instalar un contenedor Docker de WordPress
Este ejemplo muestra cómo correr un contenedor WordPress en un solo comando.
- Logueado en la consola de comandos SSH de tu servidor, ejecuta este comando.
docker run -p 8888:80 wordpress 8888 será el puerto público donde correrá el contenedor web de WordPress. Si el servidor de base no está usando el puerto 80 o 443 (SSL), podrás publicarlo allí sin problema. - Al finalizar verás una salida de comando como esta.
Unable to find image 'wordpress:latest' locally
latest: Pulling from library/wordpress
a409b57eb464: Pull complete
Digest: sha256:6da8f886b20632dd05eeb22462f850a38e30600cedd894d2c6b1eb1a58e9763c
Status: Downloaded newer image for wordpress:latest
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Thu Aug 20 19:10:04.642828 2020] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.4.9 configured - resuming normal operations
[Thu Aug 20 19:10:04.642877 2020] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND' - Ahora ya puedes ingresar por navegador y configurar WordPress.