Cómo configurar un contenedor Docker de Apache

Si eres nuevo en Docker y contenedores, configurar el Contenedor Docker de Apache es una excelente manera de comenzar. Crear una aplicación en Docker es beneficioso debido a su tecnología liviana y seguridad.

En este tutorial, aprenderás cómo configurar un Contenedor Docker de Apache en Ubuntu. Utiliza este tutorial para familiarizarte con Docker y obtener también un servidor web Apache al finalizar.

Requisitos previos

Si deseas seguir paso a paso, asegúrate de tener lo siguiente y una máquina con Ubuntu 14.04.4 LTS o una versión superior con Docker instalado para este tutorial. Este tutorial utiliza Ubuntu 18.04.5 LTS con Docker v19.03.8 y una dirección IP pública de 13.213.48.113.

Configuración del Contenedor Docker de Apache

Suponiendo que ya has instalado Docker, primero configuremos el contenedor de Apache. Más adelante, aprenderás cómo iniciarlo.

Una de las formas más sencillas de poner en marcha rápidamente un contenedor Docker de Apache es descargar una imagen de contenedor existente del registro oficial de Docker, Docker Hub. En este ejemplo, descargarás y ejecutarás un contenedor Docker llamado Apache.

Con unos pocos comandos de Docker, en poco tiempo estarás ejecutando una instancia de Apache. Para hacerlo, sigue los pasos a continuación.

Nota: Este tutorial no cubre en detalle la ejecución de comandos de Docker. Para obtener más información sobre los comandos de Docker, visita la página de documentación de la línea de comandos de Docker.

1. Abre una terminal en tu máquina Ubuntu.

2. Descarga la imagen de Docker, que contiene Apache y se llama httpd, ejecutando el comando docker pull a continuación. Este comando descargará o “pullará” la imagen de Apache desde el registro de Docker, como se muestra a continuación.

# Descarga las imágenes de Docker desde el registro de Docker a tu máquina local.
docker pull httpd

La captura de pantalla a continuación muestra el resultado esperado al descargar la imagen desde Docker Hub.

Pulling the Apache image from Docker Hub

3. A continuación, confirma que has descargado la imagen ejecutando el comando docker images a continuación para listar todas las imágenes disponibles en tu computadora.

# Para verificar las imágenes de Docker
docker images

Como puedes ver a continuación, ahora tienes una imagen de Docker, que es la imagen que descargaste desde Docker Hub.

Checking the Docker images

Ejecutando el contenedor de Apache usando el comando de Docker.

En la sección anterior, descargaste la imagen de Docker desde el Docker Hub. Ahora estás listo para crear un contenedor a partir de esa imagen. Para ejecutar el contenedor de Apache, deberás ejecutar el comando Docker de la siguiente manera:

1. Invoca el comando docker run para crear un nuevo contenedor basado en tu imagen de Docker de Apache descargada.

# Ejecutar un nuevo contenedor de docker llamado docker-apache (--name)
# Asignar el puerto 80 del ordenador local al puerto 80 del contenedor (-p 80:80)
# En modo desprendido (-d)
# Utilizando la imagen de Apache
docker run -d --name docker-apache -p 80:80 -d httpd

El comando docker run luego devuelve el ID único del contenedor que acabas de crear. Guarda este ID del contenedor en el recuadro resaltado a continuación para el futuro si deseas eliminar o quitar el contenedor.

Running a new Docker container using an Apache image

2. Una vez que el contenedor de Apache esté en ejecución, verifica si puedes acceder a la interfaz web de Apache navegando a Dirección-IP-pública:80 utilizando tu navegador web. Si puedes ver el mismo mensaje, como se muestra a continuación, entonces has iniciado correctamente tu contenedor de Docker de Apache.

Asegúrate de que la Máquina Ubuntu 14.04.4 LTS tenga permitido el puerto de entrada 80 en el grupo de seguridad.

Accessing the Apach

3. Finalmente, detenga el contenedor si ya no lo necesita en ejecución ejecutando el comando docker stop a continuación. Este comando detendrá el contenedor de manera controlada.

# Detenga el contenedor con ID aaaee64a4512 Asegúrese de cambiar el valor del ID del contenedor por el suyo.
# Nota: especificar los primeros 12 caracteres del ID del contenedor es suficiente.
docker stop aaaee64a4512

Alternativamente, también puede detener un contenedor en ejecución especificando su nombre en el comando docker stop (docker stop docker-apache).

Ejecución de contenedor Docker de Apache desde un archivo Docker

En la sección anterior, aprendió cómo iniciar un contenedor Docker de Apache ejecutando la imagen Docker httpd predeterminada. ¿Qué pasa si necesita actualizar la imagen base para mostrar contenido diferente o exponerlo en un puerto diferente?

Desplegar un contenedor usando un archivo Docker le permite eliminar el paso de creación manual de la imagen cuando está probando la misma configuración en un sistema operativo diferente. El enfoque del archivo Docker es un script automatizado de imágenes Docker.

Creemos un archivo Docker y ejecutemos un contenedor a partir de él.

1. Cree una carpeta llamada ~/apache-server-docker-demo, luego cambie (cd) el directorio de trabajo a esa carpeta.

mkdir ~/apache-server-docker-demo
cd ~/apache-server-docker-demo

2. Crea otro archivo, copia/pega la siguiente configuración y guarda el archivo como index.html dentro del directorio ~/apache-server-docker-demo. El archivo index.html es una página HTML que mostrará Este tutorial te enseñará cómo ejecutar un contenedor Apache en Docker una vez que el contenedor se inicie, como verás más adelante en el curso.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>This tutorial will teach how to Run Apache container in docker .</title>
</head>
<body>
    <h1>This tutorial will teach how to Run Apache container in docker , lets GO!</h1>
</body>
</html>

3. Crea otro archivo, copia/pega la siguiente configuración y guarda el archivo como Dockerfile dentro del directorio ~/apache-server-docker-demo. Cuando esté completo, Docker utilizará este Dockerfile para ejecutar todos los comandos necesarios para construir una nueva imagen de Docker sobre cualquier imagen base.

El Dockerfile a continuación contiene varios pasos/instrucciones que construirán el contenedor Apache:

  • Maintainer La instrucción Maintainer proporciona información sobre el autor que gestiona este archivo.
  • FROM La instrucción FROM inicializa una nueva etapa de construcción y establece la Imagen Base para las instrucciones subsecuentes. En el siguiente fragmento de código, centos:7 es la imagen base.
  • COPY El comando COPY copia un archivo desde la máquina host de Docker al contenedor. El index.html que creaste anteriormente en la máquina host de Docker se copiará al directorio /var/www/html del contenedor.
  • EXPOSE– La instrucción EXPOSE informa a Docker que el contenedor escucha en los puertos de red especificados en tiempo de ejecución. El servidor web Apache está expuesto por defecto en el Puerto 80.
# Instrucción para Dockerfile para crear una nueva imagen sobre la imagen base (httpd)
FROM httpd:2.4
MAINTAINER [email protected]
COPY index.html /var/www/html/
EXPOSE 80

4. A continuación, verifica todos los archivos requeridos a continuación en la carpeta ejecutando el comando tree.

Verify all the required files

5. Luego, construye la imagen ejecutando el comando docker build. La bandera t se utiliza para etiquetar la imagen apache-server con v1 y . indica el directorio de trabajo actual.

# Construyendo la imagen de docker
sudo docker build  -t apache-server:v1 .
build the image by running the docker build command

Cuando Docker construye corre, devuelve varios atributos. Verás que uno de esos atributos es REPOSITORY. El nombre del REPOSITORY es apache-server, y la imagen está etiquetada con la versión v1, como se muestra a continuación.

Repository Attributes

6. Finalmente, ejecuta el contenedor apache usando la imagen recién construida ejecutando el comando docker run.

La bandera p publica el(los) puerto(s) de un contenedor al host, que es 80:80. La bandera -it instruye a Docker para asignar un pseudo-terminal conectado al stdin del contenedor.

# Ejecutando el contenedor Apache usando la imagen recién construida
docker run -it -p 80:80 apache-server:v1

7. Por último, verifica si puedes acceder a la interfaz web de Apache navegando a Dirección-IP-pública:80 utilizando tu navegador web. Verás este mensaje en la interfaz web porque creaste el archivo index.html, y Docker lo copió al contenedor cuando se inició.

verify if you can access the Apache web interface

Conclusión

Este tutorial tiene como objetivo ayudarte a través del proceso de configuración de un contenedor Docker de Apache utilizando imágenes de Docker. Aprendiste cómo lanzar contenedores de Apache utilizando archivos Docker, con los cuales puedes editar y construir contenedores personalizados de tu elección.

Entonces, ¿qué vas a construir en la imagen del servidor Apache Docker?

Source:
https://adamtheautomator.com/apache-docker/