¿Cómo ejecutar una instancia de Docker desde un Dockerfile?

Como Ejecutar Una Instancia De Docker Desde Un Dockerfile



Docker es una plataforma abierta muy popular que se utiliza universalmente para crear, probar, implementar y enviar aplicaciones en un entorno en contenedores. Docker utiliza el nivel de virtualización del sistema operativo y admite diferentes componentes, como contenedores, imágenes, redes y volúmenes de Docker.

Los contenedores Docker son uno de los componentes esenciales de la plataforma Docker que empaqueta el programa, los ajustes de configuración y las dependencias utilizando la imagen de Docker. La imagen de Docker es una plantilla simple o una instantánea de un contenedor que guía al contenedor sobre cómo contener una aplicación. Estas imágenes están disponibles en su mayoría en el registro oficial de Docker Hub. Los usuarios también pueden diseñar estas imágenes según los requisitos del proyecto utilizando Dockerfile.

Este blog explicará:







¿Qué es un archivo Docker?

Un Dockerfile es un archivo de texto normal que contiene comandos e instrucciones que definen la estructura básica de un contenedor Docker. Estas instrucciones se pueden ejecutar en la terminal sin ningún archivo, pero ejecutar cada comando uno tras otro es una tarea agitada y compleja. Dockerfile facilita a los desarrolladores especificar todos los requisitos e instrucciones en un solo archivo. Este archivo se utilizará luego para crear la plantilla de contenedor, que es una imagen de Docker. Después de eso, la imagen de Docker se ejecuta para iniciar la instancia en el contenedor de Docker.



Comandos básicos de Dockerfile

Algunos comandos básicos de Dockerfile que se utilizan para definir la instantánea básica del contenedor se enumeran a continuación en forma de tabla:



Comandos Descripción
DE El ' DE El comando 'se utiliza para definir la imagen base para la plantilla del contenedor. Estas imágenes se extraen del registro oficial de Docker, Docker Hub.
MANTENEDOR El ' MANTENEDOR El comando define la información del autor (nombre y correo electrónico) que está creando la imagen de Docker.
DIRTRABAJO Especifica el directorio de trabajo de una aplicación en contenedor.
COPIAR Se utiliza para copiar los archivos fuente y de configuración del sistema host a la ruta especificada del contenedor Docker.
AGREGAR El ' AGREGAR El comando 'es similar al' COPIAR ”comando pero también admite la URL remota para agregar el archivo desde la URL a la ruta del contenedor, como por ejemplo desde el repositorio de GitHub a la ruta del contenedor.
CORRER El ' CORRER ”se utiliza para ejecutar los comandos en el contenedor. En Dockerfile, se usa principalmente para administrar e instalar dependencias adicionales dentro del contenedor.
CMD CMD ”Define los puntos predeterminados de los contenedores Docker. Básicamente define los ejecutables y los parámetros predeterminados del ' PUNTO DE ENTRADA ”.
PUNTO DE ENTRADA El ' PUNTO DE ENTRADA El comando 'también se utiliza para configurar los ejecutables del contenedor Docker. Básicamente, establece las aplicaciones predeterminadas que se utilizan en un contenedor cada vez. El comando ENTRYPOINT también se usa una vez en un Dockerfile.
USUARIO Este comando se utiliza para configurar el UID (nombre de usuario) para ejecutar los comandos en el contenedor
VOLUMEN El ' VOLUMEN El comando 'se utiliza para vincular o montar el volumen externo (sistema de archivos) con un contenedor.
ENV El ' ENV El comando 'se utiliza para configurar las variables de entorno del contenedor.
ARGO El ' ARGO ”se utiliza para pasar los argumentos dentro del contenedor.
EXPONER El ' EXPONER El comando 'especifica los puertos de exposición en los que se ejecutará el contenedor.
CONSTRUIR Lee instrucciones de la imagen base pero activa estas instrucciones a través de la imagen descendente.
ETIQUETA El ' ETIQUETA ”se utiliza para especificar los metadatos de la instantánea del contenedor.

¿Cómo ejecutar una instancia de Docker desde un Dockerfile en Docker?

Para ejecutar una instancia o contenedor de Docker usando Dockerfile, primero cree un Dockerfile. Luego, cree la instantánea básica para el contenedor usando Dockerfile. Después de eso, ejecute la instantánea para iniciar la instancia de Docker.





Siga las siguientes instrucciones a modo de ilustración.

Paso 1: crea un archivo Docker

Primero, cree un Dockerfile. Recuerda que Dockerfile no tiene ninguna extensión de archivo. Después de eso, pegue los siguientes comandos en el archivo:



DE golang: 1.8

DIRTRABAJO / ir / src / aplicación

COPIAR main.go.

CORRER ir a construir -O Servidor web .

EXPONER 8080 : 8080

PUNTO DE ENTRADA [ './Servidor web' ]

Paso 2: crear un archivo de programa

A continuación, cree un nuevo archivo llamado ' principal.go ”que contiene el sencillo programa Golang. Para ello pegue el siguiente programa en el archivo:

paquete principal
importar (
    'fmt'
    'registro'
    'red/http'
)

controlador de funciones ( En http.ResponseWriter,r * http.Solicitud ) {
fmt.Fprintf ( En , '¡Hola! Bienvenido al tutorial de LinuxHint' )
}
función principal ( ) {
http.HandleFunc ( '/' , manipulador )
registro.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , nulo ) )
}

Paso 3: generar una instantánea del contenedor

Ahora, cree la instantánea de Docker del contenedor usando ' docker build -t -f . ”:

construcción de ventana acoplable -t ir-img -F Archivo Docker.

En el comando anterior, el ' -t La opción 'establece el nombre o etiqueta de la imagen', -F La opción 'especifica la ruta al Dockerfile desde el cual el motor Docker necesita leer el contexto de compilación:

Para comprobar si la imagen se creó correctamente o no, ejecute el comando ' imágenes acoplables ' dominio:

imágenes de Docker go-img

El resultado muestra que hemos creado con éxito la instantánea del contenedor desde Dockerfile:

Paso 4: ejecute la instantánea para activar el contenedor

Ahora, inicie la instancia de Docker en el contenedor Docker ejecutando la instantánea del contenedor creada en el paso anterior:

ejecución de la ventana acoplable -pag 8080 : 8080 --nombre continuar -d ir-img

En el comando anterior, el ' -pag La opción 'ejecuta el contenedor en el' 8080 ' puerto, ' -nombre ' establece el nombre del contenedor y el ' -d La opción 'ejecuta el contenedor en modo independiente (servicio en segundo plano):

Para verificar si el contenedor se está ejecutando o no, enumere los contenedores en ejecución usando el botón ' ventana acoplable ps ' dominio:

estibador PD

Ahora, navega hasta “ http://localhost:8080 ”y verifique si la aplicación se está ejecutando en el puerto de exposición o no:

El resultado anterior indica que hemos iniciado efectivamente la instancia de Docker usando Dockerfile.

¿Cómo ejecutar una instancia desde un Dockerfile en Docker Compose?

Docker compose es otro complemento importante de la plataforma Docker que nos permite ejecutar múltiples instancias en diferentes contenedores al mismo tiempo. Los usuarios también pueden ejecutar la instancia de Docker desde Dockerfile utilizando el complemento de redacción de Docker. A modo de ilustración, siga los pasos indicados.

Paso 1: crear un archivo Docker

Primero, cree un Dockerfile. Por ejemplo, estamos usando el mismo Dockerfile y archivo de programa que se usan en la sección anterior:

DE golang: 1.8

DIRTRABAJO / ir / src / aplicación

COPIAR main.go.

CORRER ir a construir -O Servidor web .

EXPONER 8080 : 8080

PUNTO DE ENTRADA [ './Servidor web' ]

Paso 2: crear el archivo docker-compose.yml

A continuación, cree un ' docker-compose.yml ”archivo y copie los siguientes pares de claves en el archivo:

versión: '3'

servicios:
   
web:
construir: .
puertos:
    - 8080 : 8080

En el recorte mencionado anteriormente:

  • servicios 'Se utiliza para especificar los servicios de composición que se ejecutarán en un contenedor separado. A modo de ilustración, hemos configurado solo un servicio “ web ”para mantener el código limpio y simple.
  • construir El par de claves se utiliza para leer el contexto de compilación del Dockerfile. Aquí, Docker leerá las instrucciones del Dockerfile y construirá el contenedor en consecuencia.
  • puertos La clave define los puertos de exposición en los que se ejecutará el contenedor.

Paso 3: iniciar la instancia de Docker

Ahora, ejecute la instancia de Docker en un contenedor usando el comando ' Docker-componer ' dominio:

Docker-componer -d

Para verificación, verifique la lista de contenedores de redacción en ejecución usando el botón ' docker-componer ps ' dominio:

docker-componer PD

El resultado muestra que el “ web 'El servicio se está ejecutando correctamente en el' golangapp-web-1 ' envase:

Navegue hasta el puerto de exposición del servicio de redacción y verifique si el programa se está ejecutando o no. El siguiente resultado muestra que hemos iniciado con éxito la instancia de Docker desde Dockerfile usando Docker Compose:

Se trata de ejecutar una instancia de Docker desde un Dockerfile.

Conclusión

Para ejecutar una instancia de Docker en un contenedor desde un Dockerfile, primero cree Dockerfile. Agregue los comandos dentro del archivo para crear la imagen o plantilla del contenedor Docker. Luego, cree la imagen o instantánea del contenedor usando el botón ' docker build -t -f . ' dominio. Ahora, ejecute la imagen del contenedor para iniciar la instancia de Docker. Los usuarios también pueden usar Docker Compose para ejecutar la instancia de Docker desde Dockerfile. Esta publicación ha ilustrado cómo ejecutar una instancia de Docker desde un Dockerfile.