Cómo construir y configurar automáticamente las imágenes de Docker personalizadas con DockerFile - Parte 3

Cómo construir y configurar automáticamente las imágenes de Docker personalizadas con DockerFile - Parte 3

Este tutorial se concentrará en cómo construir una imagen de Docker personalizada basada en Ubuntu con apache Servicio instalado. Todo el proceso se automatizará utilizando un Dockfile.

Las imágenes de Docker se pueden construir automáticamente a partir de archivos de texto, nombrados Dockerfiles. Un archivo Docker contiene instrucciones o comandos ordenados paso a paso utilizados para crear y configurar una imagen Docker.

Requisitos

  • Instale la manipulación del contenedor Docker y Learn Docker - Parte 1
  • Implementar y ejecutar aplicaciones en contenedores Docker - Parte 2

Básicamente, un archivo Docker contiene varias instrucciones para construir y configurar un contenedor específico basado en sus requisitos. Las siguientes instrucciones son las más utilizadas, algunas de ellas son obligatorias:

  1. DE = Obligatoria como la primera instrucción en un archivo Docker. Instruye a Docker que extraiga la imagen base de la que está construyendo la nueva imagen. Use una etiqueta para especificar la imagen exacta de la que está construyendo:
Ej: de Ubuntu: 20.04 
  1. Mantenedor = Autor de la imagen de compilación
  2. CORRER = Esta instrucción se puede usar en varias líneas y ejecuta cualquier comando después de que se haya creado una imagen de Docker.
  3. CMD = Ejecutar cualquier comando cuando se inicia la imagen de Docker. Use solo una instrucción CMD en un Dockerfile.
  4. PUNTO DE ENTRADA = Igual que CMD pero usado como el comando principal para la imagen.
  5. EXPONER = Instruye al contenedor que escuche en los puertos de red cuando se ejecuta. Los puertos de contenedores no pueden accesibles desde el host de forma predeterminada.
  6. Envidia = Establecer variables de entorno de contenedor.
  7. AGREGAR = Copiar recursos (archivos, directorios o archivos de URL).

Paso 1: Creación o redacción del repositorio de Dockerfile

1. Primero, creemos algún tipo de Dockfile repositorios para reutilizar archivos en el futuro para crear otras imágenes. Hacer un directorio vacío en algún lugar de /var Partición donde crearemos el archivo con las instrucciones que se utilizarán para construir la imagen recién docker.

# mkdir -p/var/docker/ubuntu/apache # touch/var/docker/ubuntu/apache/dockerfile 
Crear un repositorio de Dockerfile

2. A continuación, comience a editar el archivo con las siguientes instrucciones:

# vi/var/docker/ubuntu/apache/dockerfile 

Extracto de Dokerfile:

De ubuntu mantenedor tu_name <[email protected]> Ejecutar apt -get -y install apache2 ejecutar echo "Hello Apache Server en Ubuntu Docker">/var/www/html/index.HTML Expone 80 CMD/USR/SBIN/APACHE2CTL -D PARAJE 
Repositorio de DockerFile

Ahora, revisemos las instrucciones del archivo:

La primera línea nos dice que estamos construyendo desde un Ubuntu imagen. Si no se envía ninguna etiqueta, digamos 14:10 Por ejemplo, la última imagen de Centro de acopolador se usa.

En la segunda línea, hemos agregado el nombre y correo electrónico del creador de imágenes. Siguientes dos CORRER Las líneas se ejecutarán en el contenedor al construir la imagen y se instalarán apache demonio y eco algún texto en la página web de Apache predeterminada.

El EXPONER La línea instruirá el Docker contenedor para escuchar en el puerto 80, Pero el puerto no estará disponible para el exterior. La última línea instruye al contenedor que ejecute el servicio Apache en primer plano después de que se inicia el contenedor.

3. Lo último que debemos hacer es comenzar a crear la imagen emitiendo el siguiente comando, que creará localmente una nueva imagen de Docker con nombre ubuntu-apache Basado en el DockerFile creado anteriormente, como se muestra en este ejemplo:

# Docker Build -t ubuntu -apache/var/docker/ubuntu/apache/ 
Crear imagen Docker

4. Después de que la imagen haya sido creada por Estibador, Puede enumerar todas las imágenes disponibles e identificar su imagen emitiendo el siguiente comando:

# Imágenes de Docker 
Enumere todas las imágenes de Docker

Paso 2: ejecute el contenedor y acceda a Apache desde LAN

5. Para ejecutar el contenedor continuamente (en segundo plano) y acceder a los Servicios expuestos al contenedor (puertos) desde el host u otra máquina remota en su LAN, ejecute el siguiente comando en su mensaje Terminal de host:

# Docker Run -D -P 81:80 Ubuntu -apache 
Ejecutar la imagen del contenedor Docker

Aquí el -d La opción ejecuta el ubuntu-apache contenedor en el fondo (como demonio) y el -pag La opción mapea el puerto del contenedor 80 a su puerto localhost 81. Se puede llegar al acceso a la LAN al servicio Apache a través del puerto 81 solo.

El comando NetStat le dará una idea sobre qué puertos está escuchando el host.

Después de que se haya iniciado el contenedor, también puede ejecutar Docker PS Comando para ver el estado del contenedor en ejecución.

6. La página web se puede mostrar en su host desde la línea de comandos usando rizo Utilidad contra la dirección IP de su máquina, localhost o interfaz neta Docker en el puerto 81. Utilice la línea de comandos IP para mostrar direcciones IP de la interfaz de red.

# IP AdDR [List Nework Interfaces] # Curl IP-Address: 81 [Dirección IP de Docker del sistema] # Curl Localhost: 81 [Localhost] 
Verifique la interfaz de red Docker y la dirección IP Verifique la página web de Docker Apache

7. Para visitar la página web del contenedor desde su red, abra un navegador en una ubicación remota y use el protocolo HTTP, la dirección IP de la máquina donde se ejecuta el contenedor, seguido del puerto 81 como se ilustra en la imagen a continuación.

http: // dirección IP: 81 
Verifique la página de Apache del contenedor Docker

8. Para obtener un interior de qué procesos se están ejecutando dentro del contenedor, el siguiente comando:

# Docker PS # Docker Top  
Verifique la ejecución de procesos de Docker

9. Para detener el problema del contenedor Docker Stop comando seguido de la identificación o nombre del contenedor.

# Docker Stop # Docker PS 

10. En caso de que desee asignar un nombre descriptivo para el contenedor, use el --nombre Opción como se muestra en el siguiente ejemplo:

# Docker Run - -Name my -www -d -p 81:80 ubuntu -apache # docker ps 
Dé el nombre del contenedor Docker

Ahora puede hacer referencia al contenedor para su manipulación (inicio, detener, arriba, estadísticas, etc.) solo utilizando el nombre asignado.

# estadísticas de docker my-www 
Monitorear la utilización del contenedor de Docker

Paso 3: Cree un archivo de configuración de todo el sistema para Docker Container

11. En CentOS/RHEL Puedes crear un system archivo de configuración y administrar el contenedor como lo hace normalmente para cualquier otro servicio local.

Por ejemplo, cree un nuevo archivo Systemd llamado, digamos, docker de apache.servicio Usando el siguiente comando:

# vi/etc/systemd/system/apache-docker.servicio 

docker de apache.servicio Extracto de archivo:

[Unidad] Descripción = Apache Container requiere = Docker.Servicio después = Docker.servicio [servicio] reiniciar = Always Execstart =/usr/bin/Docker Start -A my -www execstop =/usr/bin/docker stop -t 2 my -www [install] wantedby = local.objetivo 

12. Después de terminar de editar el archivo, cierre, vuelva a cargar el Daemon Systemd para reflejar los cambios e iniciar el contenedor emitiendo los siguientes comandos:

# SystemCTL-Reload de Daemon # SystemCTL Start Apache-Docker.Servicio # SystemCTL Status Apache-Docker.servicio 

Este fue solo un simple ejemplo de lo que puede hacer con un simple Dockfile Pero puede pre-construir algunas aplicaciones bastante sofisticadas que puede activar solo una cuestión de segundos con recursos y esfuerzo mínimos.

Otras lecturas:

Parte 4: Cómo monitorear los contenedores Docker en Linux