Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 9930|Antwoord: 2

Verschil tussen dockerfile en docker-compose

[Link kopiëren]
Geplaatst op 15-11-2019 09:33:13 | | |
Verschil tussen dockerfile en docker-compose
Laten we kort het gebruiksproces van docker begrijpen, dat is onderverdeeld in image building en container startup.

Imageconstructie: dat wil zeggen, maak een image die de omgeving, programmacode, enz. bevat die nodig is voor installatie en werking. Dit aanmaakproces gebeurt met behulp van een dockerfile.

Containeropstart: De container wordt uiteindelijk uitgevoerd door de gebouwde image te halen en de service te starten via een reeks uitvoerende instructies (zoals port mapping, externe datamounting, omgevingsvariabelen, enz.). Voor een enkele container kan dit via Docker worden uitgevoerd.

Als het gaat om het draaien van meerdere containers (zoals service orchestration), kan het worden geïmplementeerd via docker-compose, dat gemakkelijk meerdere containers als service kan draaien (natuurlijk slechts één ervan) en de schaalfunctie (service scaling) biedt.

Korte samenvatting:

1.dockerfile: bouw de image;

2. Docker run: Start de container;

3. docker-compose: Start de dienst;

Begin bij het begin.
Als je Docker niet gebruikt, hoe bouw je dan WordPress? Zoek eerst een server, ga ervan uit dat het besturingssysteem Ubuntu is, en volg dan stap voor stap de documentatie om het commando in te typen en de configuratie te schrijven, toch?
Hoe zit het met docker? Zoek gewoon een server, ongeacht welk besturingssysteem, zolang hij docker ondersteunt, docker draait Ubuntu, docker haalt de nieuwste Ubuntu-image uit de officiële bron, je kunt het zien als het openen van een Ubuntu-virtuele machine en die stap voor stap installeren, net zoals hierboven.

Deze installatie heeft echter een aanzienlijk nadeel: zodra de container is verwijderd, is er geen werk meer gedaan. Natuurlijk kun je docker commit gebruiken om het als image op te slaan, zodat het hergebruikt kan worden.

Maar de afbeelding is over het algemeen groot, en als je alleen de afbeelding deelt, zullen anderen niet weten wat jouw afbeelding bevat, wat niet bevorderlijk is voor delen en hergebruik.
Een intuïtieve oplossing is om een script te schrijven dat het hele installatieproces vastlegt, zodat je bij de installatie het script kunt uitvoeren. Een Dockerfile is zo'n script dat het proces van het maken van een afbeelding documenteert.
Met een Dockerfile kun je gewoon de docker-build uitvoeren. Je kunt een image maken, en het Dockerfile is een tekstbestand dat heel eenvoudig te wijzigen is.

Nu je een WordPress-image hebt, hoef je alleen nog maar een docker run te doen om WordPress aan de praat te krijgen.

Als het alleen WordPress is, is dat genoeg. Maar vaak zijn meerdere images nodig om een dienst te starten, zoals nginx, mysql, mailservice, enzovoort.
Vaker zijn nginx, mysql en smtp allemaal images, en werken deze images samen om een project te ondersteunen.
docker-compose is de oplossing voor dit probleem. Informatie over welke afbeeldingen je project nodig heeft, hoe je elke afbeelding configureert, welke volumes je moet monteren, enzovoort, is opgenomen in docker-compose.yml.
Om een dienst te starten, hoef je alleen docker-compose op te zetten, en je hoeft alleen docker-compse stop/down te stoppen om het te stoppen

Kortom, een Dockerfile registreert het constructieproces van één afbeelding, docker-compse.yml het het bouwproces van een project vastlegt (meestal meerdere images).

Je zei dat sommige tutorials dockerfile+docker-compose gebruiken omdat docker-compose.yml zelf geen informatie heeft over de image-build, en als de image uit het docker-register wordt gehaald, is dockerfile niet nodig; Als het image gebouwd moet worden, moet er een Dockerfile worden geleverd.

docker-composeHet is een orkestratiecontainer. Je hebt bijvoorbeeld een php-image, een mysql-image en een nginx-image. Als er geen docker-compose is, moet je elke keer dat je opstart de opstartparameters van elke container typen, omgevingsvariabelen, containernaam, de linkparameters van verschillende containers specificeren en een reeks bewerkingen uitvoeren, wat behoorlijk omslachtig is. Na het gebruik van docker-composer kun je deze commando's tegelijk in docker-composer.yml bestand schrijven, en elke keer dat je de hele omgeving start (inclusief 3 containers), hoef je alleen een docker-composer up-commando in te typen.

dockerfileDe rol is om een spiegelbeeld vanaf nul op te bouwen. Het bevat de omgeving, programmacode, enzovoort die nodig zijn voor installatie en gebruik. Dit aanmaakproces gebeurt met behulp van een dockerfile. Dockerfile - Voorbereid op het docker build-commando om een zelfstandig image te maken, dat ook gebruikt kan worden in docker-compose voor live builds
docker-compose.yml - Een script voor docker-compose dat meerdere containers tegelijk kan beheren, inclusief relaties ertussen, of je nu met een officiële image of zelf bouwt, diverse netwerkpoortdefinities, opslagruimtedefinities, enzovoort




Vorig:Niet geregistreerd URL "http://xx/" voor site "SITE NAME"...
Volgend:Docker slaat de afbeeldingslocatie op onder het Windows-systeem
 Huisbaas| Geplaatst op 18-12-2022 14:56:50 |
centos installatie Docker Compose tutorial
https://www.itsvse.com/thread-5164-1-1.html
 Huisbaas| Geplaatst op 05-03-2025 10:37:33 |
BuildKit is een verbeterde backend die de legacy builder vervangt. Vanaf versie 23.0 is BuildKit de standaardbuilder voor gebruikers op Docker Desktop en Docker Engine.

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com