Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 9930|Respuesta: 2

Diferencia entre dockerfile y docker-compose

[Copiar enlace]
Publicado en 15/11/2019 9:33:13 | | |
Diferencia entre dockerfile y docker-compose
Vamos a entender brevemente el proceso de uso de docker, que se divide en construcción de imágenes y arranque de contenedores.

Construcción de imágenes: es decir, crear una imagen que contenga el entorno, el código del programa, etc., necesarios para la instalación y el funcionamiento. Este proceso de creación se realiza usando un dockerfile.

Inicio del contenedor: Finalmente, el contenedor se ejecuta extrayendo la imagen construida y comenzando el servicio mediante una serie de instrucciones en ejecución (como mapeo de puertos, montaje externo de datos, variables de entorno, etc.). Para un solo contenedor, esto puede ejecutarse mediante docker run.

Si implica ejecutar múltiples contenedores (como orquestación de servicios), puede implementarse mediante docker-compose, que puede ejecutar fácilmente varios contenedores como servicio (por supuesto, solo uno) y proporciona la función de escalar (escalabilidad de servicios).

Resumen breve:

1.dockerfile: construye la imagen;

2. Corrida en Docker: Iniciar el contenedor;

3. docker-compose: iniciar el servicio;

Empieza desde el principio.
Si no usas Docker, ¿cómo construyes WordPress? Busca primero un servidor, asume que su sistema operativo es Ubuntu y luego sigue la documentación paso a paso para escribir el comando y escribir la configuración, ¿verdad?
¿Y qué pasa con usar docker? Solo tienes que encontrar un servidor, sea cual sea el sistema operativo, mientras soporte docker, docker ejecuta Ubuntu, docker sacará la última imagen de Ubuntu de la fuente oficial, puedes pensar en ello como si hubieras abierto una máquina virtual de Ubuntu y luego instalarlo paso a paso, igual que antes.

Sin embargo, esta instalación tiene un inconveniente importante: una vez que se elimina el contenedor, no se realiza ningún trabajo. Por supuesto, puedes usar el commit de docker para guardarlo como imagen, de modo que pueda reutilizarse.

Pero la imagen suele ser grande, y si solo compartes la imagen, los demás no sabrán qué contiene, lo cual no favorece la compartida y la reutilización.
Una solución intuitiva es escribir un script para registrar todo el proceso de instalación, de modo que cuando lo vuelvas a instalar puedas ejecutar el script. Un Dockerfile es uno de esos scripts que documenta el proceso de creación de una imagen.
Con un Dockerfile, simplemente ejecuta la compilación de docker. Puedes crear una imagen, y el archivo Docker es un archivo de texto, que es muy fácil de modificar.

Ahora que tienes una imagen de WordPress, solo necesitas ejecutar Docker para poner WordPress en marcha.

Si es solo WordPress, eso es suficiente. Pero muchas veces, se necesitan varias imágenes para iniciar un servicio, como nginx, mysql, servicio de correo, etc.
Más comúnmente, nginx, mysql y smtp son todas imágenes, y luego estas imágenes trabajan juntas para servir a un proyecto.
Docker-Compose es la solución a este problema. En docker-compose.yml se incluye información sobre qué imágenes necesita tu proyecto, cómo configurar cada imagen, qué volúmenes montar, etc.
Para iniciar un servicio, solo necesitas compoñer Docker, y solo necesitas Docker Compse Stop/Down para detenerlo

En resumen, un Dockerfile registra el proceso de construcción de una sola imagen, docker-compse.yml registra el proceso de construcción de un proyecto (normalmente múltiples imágenes).

Has dicho que algunos tutoriales usan dockerfile+docker-compose porque docker-compose.yml en sí no tiene información sobre la construcción de la imagen, y si la imagen se extrae del registro docker, entonces el dockerfile no es necesario; Si la imagen necesita ser construida, entonces debe proporcionarse un archivo Docker.

docker-composeEs un contenedor de orquestación. Por ejemplo, tienes una imagen php, una imagen mysql y una imagen nginx. Si no hay docker-compose, entonces cada vez que arranques, tienes que escribir los parámetros de arranque de cada contenedor, variables de entorno, nombre del contenedor, especificar los parámetros de enlace de diferentes contenedores y una serie de operaciones, lo cual es bastante engorroso. Después de usar docker-composer, puedes escribir estos comandos en docker-composer.yml archivo a la vez, y cada vez que inicies todo el entorno (incluidos 3 contenedores), solo necesitas escribir un comando docker-composer up.

dockerfileEl papel es construir una imagen reflejada desde cero. Contiene el entorno, el código de programa, etc., necesarios para la instalación y el funcionamiento. Este proceso de creación se realiza usando un dockerfile. Dockerfile - Preparado para el comando docker build para crear una imagen independiente, que también puede usarse en docker-compose para compilaciones en vivo
docker-compose.yml - Un script para docker-compose que puede gestionar múltiples contenedores al mismo tiempo, incluyendo relaciones entre ellos, ya sea para construir con una imagen oficial o contigo mismo, varias definiciones de puertos de red, definiciones de espacio de almacenamiento, etc




Anterior:No se ha registrado la URL "http://xx/" para el sitio "NOMBRE DEL SITIO"...
Próximo:Docker almacena la ubicación de la imagen bajo el sistema Windows
 Propietario| Publicado en 18/12/2022 14:56:50 |
Tutorial de instalación de Docker Compose de centos
https://www.itsvse.com/thread-5164-1-1.html
 Propietario| Publicado en 5/3/2025 10:37:33 |
BuildKit es un backend mejorado que reemplaza al constructor heredado. A partir de la versión 23.0, BuildKit es el generador por defecto para usuarios en Docker Desktop y Docker Engine.

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.

Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com