Los contenedores son una excelente manera de desplegar instancias aisladas de servicios y aplicaciones. Con estas herramientas en contenedores, puede moverlas fácilmente de un servidor a otro, actualizarlas rápidamente e incluso implementarlas en un clúster para lograr una escalabilidad muy grande. Le guiaremos a través del proceso de instalación de una de las herramientas de contenedores más populares del mercado, Docker, y luego desplegaremos el servidor web de NGINX.
Instalación
La instalación de Docker en Ubuntu 18.04 es increíblemente fácil. Abra una ventana de terminal (o inicie sesión en su servidor Ubuntu a través de SSH). Antes de instalar Docker, lo mejor es actualizar el servidor. Sin embargo, recuerde que si la actualización incluye el núcleo, deberá reiniciar el servidor para que los cambios surtan efecto. Debido a esto, ejecute los comandos de actualización durante un momento en el que sea posible reiniciar el servidor.
Los comandos para actualizar y actualizar el servidor Ubuntu son:
sudo apt-get update
sudo apt-obtener actualizaciónCuando se completen estos dos comandos (y se haya reiniciado, si es necesario), puede instalar el Docker emitiendo el siguiente comando:
sudo apt-get install docker.ioUna vez que el comando se haya completado, inicie y habilite Docker con los comandos:
sudo systemctl start docker
sudo systemctl enable dockerHabilitamos Docker para que se inicie automáticamente, en caso de que el servidor se reinicie.
A continuación, deberá agregar su usuario al grupo de acopladores (de lo contrario, tendrá que ejecutar comandos de acoplador con privilegios sudo, lo que puede provocar problemas de seguridad). Esto se puede solucionar con un solo comando:
sudo usermod -aG docker $USEREn caso de que sienta curiosidad, lo siguiente explica el comando anterior:
- usermod es el comando para modificar un usuario.
- La opción a instruye al usermod que estamos añadiendo al usuario.
- Las opciones G indican al usermod que estamos agregando al usuario a un grupo.
- docker es el grupo al que estamos agregando al usuario.
- El USUARIO instruye a bash a usar el usuario que está conectado actualmente.
Después de ejecutar el comando anterior, debe cerrar sesión y volver a iniciar sesión para que los cambios surtan efecto.
Ya está listo para empezar a trabajar con Docker.
Extracción de imágenes de DockerHub
DockerHub es un repositorio centralizado que contiene imágenes que pueden ser utilizadas como base para sus contenedores. DockerHub contiene miles de imágenes, algunas de las cuales sirven para propósitos muy específicos (e incluso de nicho). Dado que nuestro objetivo es desplegar un contenedor NGINX, vamos a derribar el contenedor oficial de NGINX. Antes de hacer eso, emita el comando:
Imágenes del muelle
dockerLa salida de ese comando no debe mostrar ninguna imagen actual que se encuentre. Despliegue la imagen NGINX con el comando:
docker pull nginxEl comando anterior desplegará la imagen. Si ejecuta el comando docker images, verá la imagen recién extraída en la lista.
Desplegando el Contenedor NGINXAhora que tenemos una imagen con la que basar nuestro contenedor, vamos a desplegar la instancia contenedorizada de NGINX en nuestra red. Con NGINX como contenedor, usted puede controlar en qué puerto está desplegado. Desplegaremos NGINX en el puerto estándar 80. Para que esto ocurra, el comando tiene el siguiente aspecto:
docker run --nombre docker-nginx -p 80:80 nginxUna pequeña explicación del comando anterior:
- docker es el comando real
- run indica al comando que lo que sigue debe ejecutarse con el comando.
- --le da a nuestro contenedor un nombre legible para los humanos.
- -p indica a Docker qué puertos se utilizarán.
- 80:80 - El primer 80 es el puerto externo (como se usa en su red) y el segundo 80 es el puerto interno (como se usa en el Docker).
- nginx es la imagen que se utilizará para el contenedor.
Después de desplegar ese contenedor, debería ser capaz de apuntar un navegador a http://SERVER_IP (donde Server IP es la dirección IP del servidor que alberga el Docker) y ver la página de bienvenida de NGINX. También notará que no se le devuelve la línea de comandos. Por qué? Hemos ejecutado el comando en modo adjunto. Si pulsa la combinación de teclas Ctrl+c, el contenedor será destruido y recuperará el mensaje. Si desea mantener el contenedor en funcionamiento y recuperar el aviso, debe desplegar el contenedor en modo independiente, de esta manera:
docker run --name docker-nginx -p 80:80 -d nginx
Sin embargo, como ya hemos desplegado el primer contenedor, verá un error. Para evitar esto, debemos detener el primer contenedor con el comando docker stop. Para ello, debe tomar nota del nombre del contenedor (se imprimirá en el error), que es una larga cadena de caracteres aleatorios. Para ejecutar este comando, sólo tiene que usar los primeros cuatro caracteres del contenedor, así:
Parada en el muelle f149
A continuación tenemos que quitar el contenedor con el comando:
embarcador rm f149El contenedor original se ha detenido y se ha retirado. A continuación, puede volver a desplegar con éxito el contenedor NGINX en modo independiente.