Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 9930|Risposta: 2

Differenza tra dockerfile e docker-compose

[Copiato link]
Pubblicato su 15/11/2019 09:33:13 | | |
Differenza tra dockerfile e docker-compose
Comprendiamo brevemente il processo d'uso di Docker, che si divide in costruzione di immagini e avvio di container.

Costruzione dell'immagine: cioè, creare un'immagine che contenga l'ambiente, il codice del programma, ecc. necessari per l'installazione e il funzionamento. Questo processo di creazione viene effettuato utilizzando un dockerfile.

Avvio del container: Il container viene infine eseguito estraendo l'immagine compilata e avviando il servizio tramite una serie di istruzioni in esecuzione (come mappatura delle porte, montaggio dati esterni, variabili ambientali, ecc.). Per un singolo container, questo può essere eseguito tramite docker run.

Se comporta l'esecuzione di più container (come l'orchestrazione dei servizi), può essere implementata tramite docker-compose, che può facilmente eseguire più container come servizio (ovviamente, solo uno) e fornisce la funzione di scala (scalabilità dei servizi).

Breve riassunto:

1.dockerfile: costruisci l'immagine;

2. Docker run: avviare il container;

3. docker-compose: avviare il servizio;

Inizia dall'inizio.
Se non usi Docker, come costruisci WordPress? Trova prima un server, supponi che il suo sistema operativo sia Ubuntu, e poi segui la documentazione passo dopo passo per digitare il comando e scrivere la configurazione, giusto?
E per quanto riguarda l'uso di Docker? Basta trovare un server, qualunque sia il sistema operativo, finché supporta docker, docker usa Ubuntu, docker estraggerà l'ultima immagine di Ubuntu dalla fonte ufficiale, puoi pensare che apresi una macchina virtuale Ubuntu e poi installarla passo dopo passo, proprio come sopra.

Tuttavia, questa installazione presenta uno svantaggio significativo: una volta che il contenitore viene eliminato, non si effettua alcun lavoro. Ovviamente, puoi usare docker commit per salvarlo come immagine, così da poterlo riutilizzare.

Ma l'immagine è generalmente grande, e se condividi solo l'immagine, gli altri non sapranno cosa contiene, il che non è favorevole alla condivisione e al riutilizzo.
Una soluzione intuitiva è scrivere uno script per registrare l'intero processo di installazione, così quando lo riinstalli puoi eseguire lo script. Un Dockerfile è uno di questi script che documenta il processo di creazione di un'immagine.
Con un Dockerfile, basta eseguire la build docker. Puoi creare un'immagine, e il Dockerfile è un file di testo, molto facile da modificare.

Ora che hai un'immagine WordPress, devi solo eseguire Docker per far funzionare WordPress.

Se è solo WordPress, basta così. Ma spesso sono necessarie più immagini per avviare un servizio, come nginx, mysql, mail service, ecc.
Più comunemente, nginx, mysql e smtp sono tutte immagini, e poi queste immagini lavorano insieme per servire un progetto.
docker-compose è la soluzione a questo problema. Le informazioni su quali immagini servono al tuo progetto, come configurare ogni immagine, quali volumi montare, e così via sono incluse in docker-compose.yml.
Per avviare un servizio, basta compilare con docker, e basta fermarsi/abbassare docker-compse per fermarlo

In breve, un Dockerfile registra il processo di costruzione di una singola immagine, docker-compse.yml registra il processo di costruzione di un progetto (di solito più immagini).

Hai detto che alcuni tutorial usano dockerfile+docker-compose perché docker-compose.yml stesso non contiene informazioni sulla build dell'immagine, e se l'immagine viene prelevata dal registro docker, allora il dockerfile non è necessario; Se l'immagine deve essere costruita, allora deve essere fornito un file Docker.

docker-composeÈ un contenitore di orchestrazione. Ad esempio, hai un'immagine php, un'immagine mysql e un'immagine nginx. Se non c'è docker-compose, ogni volta che avvii devi digitare i parametri di avvio di ogni container, le variabili dell'ambiente, il nome del container, specificare i parametri di collegamento di diversi container e una serie di operazioni, il che è piuttosto macchinoso. Dopo aver usato docker-composer, puoi scrivere questi comandi in docker-composer.yml file contemporaneamente, e ogni volta che avvii l'intero ambiente (inclusi 3 container), devi solo digitare un comando docker-composer up.

dockerfileIl ruolo è costruire un'immagine speculare da zero. Contiene l'ambiente, il codice di programma, ecc. necessari per l'installazione e il funzionamento. Questo processo di creazione viene effettuato utilizzando un dockerfile. Dockerfile - Preparato per il comando docker build per creare un'immagine standalone, che può essere usata anche in docker-compose per build live
docker-compose.yml - Uno script per docker-compose che può gestire più container contemporaneamente, incluse le relazioni tra di essi, se costruire con un'immagine ufficiale o con te stesso, varie definizioni di porte di rete, definizioni di spazio di archiviazione, ecc




Precedente:Non è riuscito a registrare l'URL "http://xx/" per il sito "NOME SITO"...
Prossimo:Docker memorizza la posizione dell'immagine sotto il sistema Windows
 Padrone di casa| Pubblicato su 18/12/2022 14:56:50 |
Tutorial di installazione Docker Compose di centos
https://www.itsvse.com/thread-5164-1-1.html
 Padrone di casa| Pubblicato su 05/03/2025 10:37:33 |
BuildKit è un backend migliorato che sostituisce il legacy builder. A partire dalla versione 23.0, BuildKit è il builder predefinito per gli utenti su Docker Desktop e Docker Engine.

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.

Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com