架构师_程序员_码农网

N Recuperar contraseña
Registrarse

QQ登录

Sólo un paso para empezar

Buscar en
Vistas:5779|Respuestas: 1
打印 上一主题 下一主题

Diferencias entre dockerfile y docker-compose.

[copiar enlace]
A 跳转到指定楼层
el propietario del edificio
发表于 2019-11-15 09:33:13|只看该作者回帖奖励|Buscaren orden inverso|Modo lectura
Diferencias entre dockerfile y docker-compose
Lo primero que debes saber sobre docker es que se divide en construcción de imágenes y lanzamiento de contenedores.

Construcción de imágenes: Creación de una imagen que contiene el entorno, el código del programa, etc. necesario para instalarlo y ejecutarlo. Este proceso se realiza mediante un dockerfile.

Lanzamiento del contenedor: Los contenedores se ejecutan finalmente extrayendo la imagen construida e iniciando el servicio a través de una serie de comandos de ejecución (por ejemplo, mapeo de puertos, montajes de datos externos, variables de entorno, etc.). Para un único contenedor, esto se puede ejecutar a través de docker run.

Para varios contenedores (por ejemplo, la orquestación de servicios), puede utilizar docker-compose, que facilita la ejecución de varios contenedores como un servicio (o sólo uno de ellos), y proporciona la capacidad de escalar el servicio.

Un breve resumen:

1. dockerfile: construye la imagen;

2. docker run: arranca el contenedor;

3. docker-compose: inicia el servicio;

Empecemos por el principio.
Si no usas docker, ¿cómo construyes wordpress? Primero encuentra un servidor, asumiendo que su SO es Ubuntu, y luego sigue la documentación paso a paso para ejecutar comandos y escribir configuraciones, ¿verdad?
¿Qué pasa con el uso de Docker? Sólo tienes que encontrar un servidor, no importa qué sistema operativo, siempre y cuando soporte docker, docker ejecutar ubuntu, docker sacará la última imagen de Ubuntu de la fuente oficial, se puede pensar en ello como abrir una máquina virtual de Ubuntu, y luego paso a paso para instalarlo, lo mismo que arriba.

Sin embargo, hay un inconveniente importante para instalar de esta manera: una vez que el contenedor se elimina, todo el trabajo que has hecho se pierde. Por supuesto, puedes usar docker commit para guardarlo como imagen, y así poder reutilizarlo.

Pero las réplicas son generalmente bastante grandes, y si sólo las compartes, la gente no sabe lo que contienen, por lo que estos problemas no son propicios para compartir y reutilizar.
Una solución intuitiva es escribir un script para grabar el proceso de instalación, de modo que cuando vuelvas a instalarlo, sólo tengas que ejecutar el script. Dockerfile es un script de este tipo, que registra el proceso de creación de una imagen.
Con Dockerfile, puedes crear una imagen ejecutando docker build . Puedes crear una imagen ejecutando docker build . Dockerfile es sólo un archivo de texto, por lo que es fácil modificarlo.

Ahora que tienes una imagen de wordpress, todo lo que necesitas hacer es ejecutar docker para poner wordpress en marcha.

Si fuera sólo wordpress, eso sería suficiente. Pero en muchos casos, se necesitan varias réplicas para iniciar un servicio, como nginx en el frontend, mysql en la base de datos, servicios de correo, etc Por supuesto, usted puede conseguir todos estos en una sola réplica, pero no es reutilizable.
Más comúnmente, nginx, mysql, smtp son cada espejo, y luego estos espejos trabajan juntos para servir a un proyecto.
docker-compose resuelve este problema. La información sobre qué réplicas necesitas para tu proyecto, cómo configurar cada una, qué volúmenes montar, etc. está contenida en docker-compose.yml.
Para iniciar un servicio, basta con docker-compose up, y para detenerlo, basta con docker-compose stop/down.

En resumen, Dockerfile registra la compilación de una sola imagen, y docker-compse.yml registra la compilación de un proyecto (normalmente varias imágenes).

Dijiste que algunos tutoriales usan dockerfile+docker-compose, porque docker-compose.yml no tiene información sobre la construcción de imágenes. Si una imagen se extrae del registro docker, entonces Dockerfile no es necesario; si una imagen necesita ser construida, entonces necesitas proporcionar el archivo Dockerfile.

docker-compose es para orquestar contenedores. Por ejemplo, tienes una imagen php, una imagen mysql, y una imagen nginx. Si no tienes docker-compose, entonces cada vez que arrancas, tienes que tocar los parámetros de arranque de cada contenedor, variables de entorno, nomenclatura de contenedores, especificar parámetros de enlace para diferentes contenedores, y así sucesivamente, una serie de operaciones, que es bastante tedioso. Pero con docker-composer, puedes escribir estos comandos en el archivo docker-composer.yml, y luego cada vez que inicies todo el entorno (incluyendo tres contenedores), sólo tienes que golpear un comando docker-composer up.

El dockerfile sirve para construir la imagen desde cero. Contiene el entorno, el código del programa, etc. necesarios para instalarla y ejecutarla. Esto se hace utilizando un dockerfile. dockerfile - preparado para que el comando docker build cree una imagen independiente, que también se puede utilizar para live builds en docker-compose
docker-compose.yml - un script para docker-compose que te permite gestionar múltiples contenedores al mismo tiempo, incluyendo la relación entre ellos, si usar la imagen oficial o construirla tú mismo, la definición de varios puertos de red, la definición del espacio de almacenamiento, etc.




Anterior: Failed to register URL "http://xx/" for site "SITE NAME"...
下一篇:docker在 windows系统下存储镜像位置
La red de agricultores de código, sólo se publica en el proceso de la práctica, se encontró con dificultades técnicas, no inducir a error a los demás.
sofá
owner|Publicado el 2022-12-18 14:56:50|Ver sólo este autor
Tutorial de Docker Compose para centos
h ttps:// www.itsvse.com/thread-5164-1-1.html
Lo único que he hecho es publicar los problemas técnicos que me he encontrado en el desarrollo de mi práctica, y no engañar a los demás.
Tienes que iniciar sesión antes de poder volver a publicar Iniciar sesión | Registrarse

E sta versión de las normas integrales


DESCARGO DE RESPONSABILIDAD: Todo el software, materiales de programación o artículos publicados por Code Farmer se limitan a ser utilizados únicamente para fines de aprendizaje e investigación; los contenidos anteriores no podrán ser utilizados con fines comerciales o ilegales, de lo contrario, todas las consecuencias serán asumidas por los propios usuarios. Esta información del sitio de la red, disputa de derechos de autor no tiene nada que ver con este sitio. Debe eliminar completamente el contenido anterior de su ordenador en las 24 horas siguientes a la descarga. Si le gusta el programa, por favor apoye el software genuino, compre el registro y obtenga un mejor servicio genuino. Si se produce alguna infracción, póngase en contacto con nosotros por correo electrónico para solucionarlo.

Correo To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-18 20:07

Respuesta rápidaVolver arribaVolver a la lista