Búsqueda de sitios web

Cómo instalar Apache en un contenedor Docker en Linux


Si es un administrador de sistemas Linux que brinda soporte a desarrolladores, es probable que haya oído hablar de Docker. De lo contrario, esta solución de software le hará la vida más fácil a partir de hoy al ayudarle a reducir los costos operativos y acelerar las implementaciones, entre otros beneficios.

Pero no es magia. Docker como plataforma aprovecha los contenedores: paquetes de una aplicación junto con todas las herramientas que necesita para ejecutarse para eliminar las diferencias entre entornos.

En otras palabras, el software en contenedores funcionará y podrá administrarse de manera consistente independientemente de dónde esté instalado. Además, los contenedores son mucho más fáciles de configurar, iniciar, detener y mantener que las antiguas máquinas virtuales.

Si está interesado en saber más sobre las diferencias entre estas dos tecnologías, el sitio web oficial de Docker ofrece una excelente explicación.

Para ilustrar, en este artículo explicaremos cómo instalar Docker en CentOS/RHEL, Rocky/Alma Linux y Debian/ Ubuntu y active un contenedor Apache 2.4 desde Docker Hub.

Luego lo usaremos para servir una página web simple desde nuestro directorio de inicio, todo sin la necesidad de instalar un servidor web en nuestro host.

Instalación de Docker en Linux

Para comenzar, instalemos Docker usando el siguiente comando curl. Esto descargará y ejecutará un script de shell que agregará el repositorio de Docker a nuestro sistema e instalará el paquete.

curl -fsSL https://get.docker.com | sh

A continuación, utilice el comando systemctl para iniciar el servicio Docker principal, habilítelo para que se inicie durante los reinicios y verifique su estado.

systemctl start docker
systemctl enable docker
systemctl status docker

En este punto, simplemente podemos ejecutar.

docker

para ver la lista de comandos disponibles o para obtener ayuda.

docker COMMAND --help
docker ps --help

nos dirá cómo enumerar los contenedores presentes en nuestro sistema, mientras que

docker run --help

Imprimirá todas las opciones que podemos utilizar para manipular un contenedor.

Configurar un contenedor Apache

Una de las cosas sorprendentes del ecosistema Docker es que hay decenas de contenedores estándar que puedes descargar y usar fácilmente.

En el siguiente ejemplo, crearemos una instancia de un contenedor Apache 2.4 llamado tecmint-web, separado del terminal actual. Usaremos una imagen llamada httpd:2.4 de Docker Hub.

Nuestro plan es redirigir las solicitudes realizadas a nuestra dirección IP pública en el puerto 8080 al puerto 80 del contenedor. Además, en lugar de ofrecer contenido desde el contenedor en sí, mostraremos una página web simple desde /home/user/website.

Hacemos esto asignando /home/user/website/ al /usr/local/apache2/htdocs/ del contenedor. Tenga en cuenta que deberá utilizar sudo o iniciar sesión como root para continuar y no omita las barras diagonales al final de cada directorio.

sudo docker run -dit --name tecmint-web -p 8080:80 -v /home/user/website/:/usr/local/apache2/htdocs/ httpd:2.4

En este punto, nuestro contenedor Apache debería estar en funcionamiento.

sudo docker ps

Ahora creemos una página web simple llamada docker.html dentro del directorio /home/user/website.

vi /home/user/website/docker.html

Agregue el siguiente contenido HTML de muestra al archivo.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Learn Docker at linux-console.net</title>
</head>
<body>
    <h1>Learn Docker With Us</h1>   
</body>
</html>

A continuación, apunte su navegador a IP-Servidor:8080/docker.html (donde IP-Servidor es la dirección IP pública de su host). Debería aparecer la página que creamos anteriormente.

Si lo deseas, ahora puedes detener el contenedor.

sudo docker stop tecmint-web

y eliminarlo:

sudo docker rm tecmint-web

Para finalizar la limpieza, es posible que desee eliminar la imagen que se utilizó en el contenedor (omita este paso si planea crear otros contenedores Apache 2.4 pronto).

sudo docker image remove httpd:2.4

Tenga en cuenta que en todos los pasos anteriores nunca tuvimos que instalar el servidor web en nuestro host.

Resumen

En este artículo, explicamos cómo instalar Docker y manipular un contenedor. Desafortunadamente, esto es solo lo básico: hay cursos completos, libros y exámenes de certificación que cubren Dockers (y contenedores en general) con mayor profundidad.

Si desea obtener más información sobre Docker, ya hemos cubierto una serie de 3 artículos que explican cómo instalar Docker, ejecutar aplicaciones en contenedores y crear automáticamente imágenes de Docker con dockerfile.

  • Instale Docker y aprenda la manipulación básica de contenedores en CentOS y RHEL
  • Cómo implementar y ejecutar aplicaciones en contenedores Docker en CentOS/RHEL
  • Cree y configure automáticamente imágenes de Docker con Dockerfile en CentOS/RHEL
  • Cómo eliminar imágenes, contenedores y volúmenes de Docker

Considere esto como su punto de partida y háganos saber si tiene alguna pregunta o comentario. ¡Esperamos tener noticias suyas!