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?
- Comandos básicos de Dockerfile
- ¿Cómo ejecutar una instancia desde un Dockerfile en Docker?
- ¿Cómo ejecutar una instancia desde un Dockerfile en Docker Compose?
- Conclusión
¿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 principalimportar (
'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
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
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-imgEn 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.8DIRTRABAJO / 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 PDEl 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