Docker es una herramienta de código abierto diseñada para facilitar la creación, compilación y ejecución de aplicaciones mediante contenedores. Los contenedores Docker actúan como un tiempo de ejecución y poseen todas las dependencias y bibliotecas necesarias para que las mismas aplicaciones también puedan ejecutarse en otros sistemas operativos. Hoy en día, las aplicaciones basadas en contenedores están siendo ampliamente utilizadas. Para ahorrar tiempo y esfuerzo, para ejecutar aplicaciones sin problemas en todas las plataformas del sistema operativo, los contenedores Docker son ampliamente adoptados. En este artículo, vamos a aprender cómo instalar Docker en Ubuntu 20.04 y ejecutar el contenedor Nginx.
Instalar Docker en Ubuntu 20.04 es un proceso simple y directo. Necesitamos actualizar el repositorio de Docker en Ubuntu, obtener la clave GPG e instalar los paquetes y las dependencias de Docker.
Requisitos
- Ubuntu 20.04 recién instalado
- Cuentas privilegiadas de Sudo para instalar paquetes.
Instalar Docker en Ubuntu
Puede instalar la última versión de Docker utilizando el repositorio oficial de Docker en Ubuntu 20.04. Para esto, debe agregar la clave GPG para el repositorio oficial de Docker a su sistema y agregar la configuración del repositorio a la fuente APT.
Descargar clave GPG de Docker
Ejecute el siguiente comando para agregar la clave GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Añadir clave GPG de Docker al repositorio del sistema
Agregue y configure el repositorio docker oficial en su sistema.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Actualizar repositorio del sistema
Ahora, actualice el paquete APT para incluir nuevos paquetes Docker usando el siguiente comando:
$ sudo apt update
Instalar Docker
Ahora puede instalar paquetes docker usando el siguiente comando:
$ sudo apt install docker-ce
Durante la instalación de los paquetes docker, el paquete del instalador activa systemd para habilitar e iniciar automáticamente el servidor docker. Use el siguiente comando para verificar el estado del servicio de la ventana acoplable.
Comprobar el estado de la ventana acoplable
Para verificar si el servicio Docker está activo o no, ejecute el siguiente comando:
$ sudo systemctl is-active docker
Para verificar si el servicio docker está habilitado o no, ejecute el siguiente comando.
$ sudo systemctl is-enabled docker
Para verificar el estado del servicio de la ventana acoplable, ejecute el siguiente comando:
$ sudo systemctl status docker
Detener, iniciar o reiniciar Docker
Hay otros comandos systemctl disponibles para controlar los servicios de Docker que son los siguientes
$ sudo systemctl stop docker # stop docker service
$ sudo systemctl start docker # start docker service
$ sudo systemctl restart docker # restart docker service
Comprobar la versión de Docker
Para verificar la versión de Docker, ejecute el siguiente comando:
$ docker version
Ejecutar contenedor Nginx usando Docker
Ejecutar Nginx en contenedores docker es muy simple y fácil. Solo necesita extraer una imagen de Nginx del concentrador de la ventana acoplable y crear un contenedor de Nginx que sirva como servidor web para archivos estáticos. Para obtener la última imagen de Nginx, ejecute el siguiente comando.
$ sudo docker pull nginx
Para enumerar las imágenes de la ventana acoplable, ejecute el comando:
$ sudo docker images
Para ejecutar un contenedor desde una imagen extraída, ejecute el siguiente comando:
$ sudo docker run -d --name nginx-server -p 80:80 nginx
donde,
d=ejecutar el contenedor en modo separado
name=nombre del contenedor a crear
p=puerto con el que se mapeará el contenedor
Tendrá una salida similar a:
$ 7ef30a6599d0a7f9618883441fdd2a683e7205287d09f92dcd3b63f4892551e7
El resultado muestra la identificación del contenedor creada con la imagen de Nginx.
Para enumerar el contenedor en ejecución, ejecute el comando:
$ sudo docker ps -a
Puede encontrar contenedores con estado en su terminal como:
Nginx se ejecuta en contenedores docker con el puerto 80. Puede verificar la instalación de Nginx navegando a la URL http://your-server-ip en su navegador.
Crear volumen Docker para Nginx
Los contenedores que acabamos de crear están envolviendo toda la configuración de Nginx y los archivos estáticos en el propio contenedor. Si necesitamos cambiar algo o reemplazar archivos, debemos acceder a los contenedores acoplables cada vez. Del mismo modo, en caso de que eliminemos el contenedor, todos los archivos y los archivos de configuración también se eliminarán. Para mitigar este problema, debemos crear un volumen docker en el host y asignarlo a un contenedor para proteger la configuración y los archivos web. En este ejemplo, he tomado nginx-data como nombre de volumen. Puedes tener tu propia suposición.
Para crear un volumen acoplable, ejecute el siguiente comando:
$ sudo docker volume create nginx-data
Obtenga la información del volumen de la ventana acoplable ejecutando el comando:
$ sudo docker volume inspect nginx-data
Obtendrá un resultado similar a:
Para facilitar el acceso, puede crear un enlace simbólico del directorio de volumen de la ventana acoplable. Para crear un enlace simbólico, ejecute el siguiente comando:
$ ln -s /var/lib/docker/volumes/nginx-data/_data /nginx
Ahora inicie el contenedor Nginx con almacenamiento de datos persistente.
$ sudo docker run -d --name nginx-server -p 80:80 -v nginx-data:/usr/share/nginx/html nginx
donde,
d=ejecutar contenedor en modo separado
name=nombre del contenedor a crear
p=puerto a mapear con host
v=nombre del volumen acoplable
El contenedor se ha iniciado con almacenamiento de datos persistente. Obtendrá la identificación del contenedor como salida como:
$ 3067684b1133a2c7e36381574ea9af3ebbb79dd2504f63ae3569bb059b74d905
Ahora verifique los contenidos disponibles en el directorio persistente de datos.
$ ls /var/lib/docker/volumes/nginx-data/_Data
El siguiente resultado se mostrará en su terminal:
Cambiemos el contenido del archivo index.html ubicado en /var/lib/docker/volumes/nginx-data/_data
$ sudo vi /var/lib/docker/volumes/nginx-data/_data/index.html
Cambie algo de código HTML y guarde el archivo. Navegue por la URL en su navegador y encontrará los contenidos de Nginx cambiados como:
Conclusión
En este artículo, aprendió cómo instalar Docker, extraer imágenes de Docker desde Docker Hub y ejecutar una aplicación en un contenedor. Además, aprendió cómo crear un almacenamiento de datos persistente y mapear con contenedores docker.