Terug naar blog

Docker Compose installeren op CentOS 7

Docker Compose installeren op CentOS 7

Dockerisatie heeft het implementatie- en automatiseringsproces in de software-industrie opnieuw gedefinieerd. Sinds de oprichting heeft het Docker-team er voortdurend naar gestreefd om geautomatiseerde implementatie naadloos te laten verlopen. Containerisatietechnologie maakt niet alleen snelle applicatieontwikkeling en efficiëntie mogelijk, maar bespaart ook tijd en zware inspanningen. Onverslaanbare functionaliteiten zoals het orkestreren, definiëren en uitvoeren van multi-containerapplicaties maken Docker samen een favoriete keuze voor ontwikkelaars.

Docker-containers en -images

Als u zich verder in Docker verdiept, is het essentieel om de basiskennis op te frissen. Begrijpen hoe Docker werkt kan lastig zijn als u er geen ervaring mee hebt. In dit gedeelte gaan we een aantal concepten definiëren die essentieel zijn voor beginners. Als u denkt dat u bekend bent met deze concepten, kunt u deze gerust overslaan en doorgaan naar het volgende gedeelte. U kunt ook een kijkje nemen in onze uitgebreide gids die de fundamentele Docker-concepten uitlegt.

  • Docker-images

Docker-images zijn een verzameling alleen-lezen bestanden. Zodra u Docker-images hebt gemaakt, kunt u ze niet meer wijzigen, hoewel verwijderen wel is toegestaan. We gebruiken een Docker-image om een of meer Docker-containers te maken op basis van onze behoeften. Gebruik de volgende opdracht om het aantal images te controleren dat op uw systeem wordt uitgevoerd:

Wanneer u images ophaalt uit een externe registry zoals Docker Hub, downloadt u bestanden en mappen. Gebruik de volgende opdracht om een image op te halen:

  • Docker-containers

Docker-images zijn de blauwdruk van Docker-containers. Technisch gezien is een Docker-container een instantie van een Docker-image. Stel dat een Docker-image een ouder is, dan is een Docker-container het kind. In tegenstelling tot Docker-images die u eenmalig kunt maken, kunt u meerdere containers maken met één enkele image. Gebruik de volgende opdracht om de lijst met images te controleren die op uw systeem worden uitgevoerd:

Gebruik de volgende opdracht om een container op te halen:

  • Hoe Docker-images en -containers werken

Docker-images en -containers werken hand in hand om het potentieel van Docker te benutten. Een enkele container wordt gebouwd met behulp van de Docker-image via de run-opdracht. Wanneer u een Docker-container maakt, wordt er een nieuwe laag gemaakt die bekend staat als de Container Layer. De nieuw gemaakte laag bevat de applicatie en de bijbehorende afhankelijkheden. Elke container die u maakt heeft een andere lees-/schrijf-Container Layer, en alle wijzigingen die in de Docker-container worden aangebracht, worden automatisch weerspiegeld in de Container Layer. Let op: als u besluit een container te verwijderen, verliest u ook de Container Layer.

Maak kennis met Docker Compose

Docker Compose is een tool voor containerbeheer waarmee u al uw Docker-containers kunt configureren en orkestreren in één enkele YAML-bestand. Het starten, stoppen en maken van koppelingen en volumes tussen containers wordt allemaal eenvoudiger met deze tool.

  • Wat doet Docker Compose?

Simpel gezegd maakt Docker Compose ingewikkelde taken eenvoudiger door conflicten en organisatorische problemen te elimineren. Hiermee kunnen gebruikers verschillende Docker-containers centraal beheren. Met andere woorden, in plaats van alle services in één grote container te hebben, splitst Docker Compose een service op in meerdere services, zodat gebruikers ze moeiteloos kunnen openen en beheren.

In deze gids leiden we u door de stappen voor het installeren van de huidige versie van Docker Compose voor het beheren van multi-containerapplicaties op CentOS 7. We zullen ook enkele basisopdrachten doornemen die u nodig hebt om de software succesvol te gebruiken.

  • Hoe u Docker Compose gebruikt

Het gebruik van Docker Compose is uiterst eenvoudig, zelfs voor nieuwkomers. Laten we eens kijken naar het proces in drie stappen van Docker Compose:

1. Bouwen: Bouw eerst images in de Dockerfile op basis van uw projectbehoeften, of haal ze eventueel op uit de registry.

2. Definiëren: Vervolgens moet u alle componentservices definiëren in het compose.yml-bestand.

3. Uitvoeren: Na het definiëren van de componenten is het tijd om ze uit te voeren met de docker-compose-opdracht.

Vereisten

Voordat we verder gaan met het installeren van Docker Compose op uw CentOS-server, moet u ervoor zorgen dat u beschikt over:

U bent nu helemaal klaar. Volg daarna de onderstaande stappen om Docker Compose op CentOS 7 te installeren.

Stap 1: Docker Compose installeren

Om de meest recente versie van Docker Compose te verkrijgen, volgt u de instructies in de Docker-documentatie en downloadt u de binaire bestanden van Docker’s GitHub-repository. Controleer of u de nieuwste versie van de software hebt door de onderstaande opdracht uit te voeren:

Om het binaire bestand uit te voeren, stelt u de onderstaande machtigingen in:

Zoek vervolgens uw versie op om te controleren of de installatie is geslaagd:

De onderstaande code zal de geïnstalleerde versie afdrukken:

docker-compose --version

U kunt vervolgens een “Hello World”-voorbeeld uitvoeren met behulp van de Docker Compose die u hebt geïnstalleerd.

Stap 2: Docker Compose gebruiken om een container uit te voeren

Er is een “Hello World”-image in Docker Hub, het openbare Docker-register, dat kan worden gebruikt voor demonstratie en testen. Het laat zien hoe u een container uitvoert met Docker Compose met een minimale configuratie. Eerst moet u een map maken voor ons YAML-bestand:

Ga vervolgens naar deze map:

Genereer vervolgens het YAML-bestand met de teksteditor van uw voorkeur. In deze handleiding gebruiken we Vi:

Druk op i om in de invoegmodus te komen, en typ vervolgens dit in het bestand:

In de containernaam wordt de eerste regel opgenomen. De tweede regel geeft het programma instructies over welke image het moet gebruiken om de container te maken. docker-composeup zal zoeken naar een lokale image met de naam hello-world om te controleren of deze beschikbaar is wanneer u de opdracht typt. Om de invoegmodus te verlaten, drukt u op ESC. Voer vervolgens :x in en druk op ENTER om het bestand op te slaan en af te sluiten. De docker images opdracht kan worden gebruikt om handmatig te controleren op images op uw machine:

Alleen de kolomkoppen verschijnen als er helemaal geen lokale images zijn:

Docker Compose on CentOS 6

Om de container te maken, voert u deze opdracht uit terwijl u zich nog in de /hello-world-directory:

Wanneer u de opdracht voor de eerste keer uitvoert en er geen lokale image is met de naam hello-world, wordt deze gedownload uit de Docker Hub-repository:

sudo docker-compose up

Om te controleren of de installatie werkt, haalt Docker Compose de image op, bouwt een container, koppelt deze en voert het hello-programma uit:

hello program

Daarna wordt een afdruk weergegeven van een beschrijving van wat er is gedaan:

Docker Compose on CentOS 3

Wanneer hello zijn taak heeft voltooid, wordt de container afgesloten en wordt de opdracht niet langer in de container uitgevoerd. Kolomkoppen worden weergegeven bij het bekijken van actieve processen. De hello-world-container wordt echter niet vermeld omdat deze momenteel niet actief is:

sudo docker ps

Om alle containers te zien, en niet alleen de huidige, gebruikt u de -a-vlag:

Docker Compose 2

Nu u hebt geprobeerd een container uit te voeren, kunt u doorgaan met het leren van enkele van de fundamentele Docker Compose-opdrachten.

Stap 3: Docker Compose-opdrachten

Om u op weg te helpen met Docker Compose, behandelt dit gedeelte de basisopdrachten die worden geleverd door de docker-compose-tool. docker-compose is een opdracht die per directory werkt. Door één directory voor elke container te genereren en één docker-compose.yml-bestand per directory, kunt u veel groepen Docker-containers op dezelfde computer uitvoeren.

Tot nu toe hebt u Docker Compose zelfstandig uitgevoerd. U kunt het uitschakelen door te drukken op Ctrl-C. Dit stelt het terminalvenster in staat om debug-berichten weer te geven. Het is echter raadzaam om docker-compose als een service uit te voeren wanneer u in productie werkt. De -d optie kan worden gebruikt als een eenvoudige manier om dit te bereiken:

Nu docker-compose splitst af naar de achtergrond. Uw groep Docker-containers (stilgelegd of actief) kan worden beheerd met de volgende opdracht:

De Status van een container wordt gerapporteerd als Exited als deze is gestopt, zoals te zien is in het onderstaande voorbeeld:

Docker Compose on CentOS 5

Een container die momenteel actief is, geeft het volgende weer:

U kunt alle actieve Docker-containers beëindigen in dezelfde map als het docker-compose.yml-bestand dat u hebt gebruikt om de Docker-groep te starten:

Note: Als u zaken geforceerd moet afsluiten, is docker-compose kill ook beschikbaar.

In sommige gevallen kunnen Docker-containers hun oude gegevens binnenin opslaan. Gebruik de rm opdracht om alle containers uit uw containergroep te verwijderen als u helemaal opnieuw wilt beginnen:

Het uitvoeren van een van deze opdrachten vanuit een andere map dan die waarin de Docker-container en het .yml-bestand zijn geplaatst, zal leiden tot een foutmelding:

In dit gedeelte hebben we de basisprincipes behandeld van het werken met containers met behulp van Docker Compose. Zoals besproken, kunt u in het volgende gedeelte toegang krijgen tot het Docker-bestandssysteem en opdrachten uitvoeren vanaf een opdrachtprompt in de container als u extra controle over uw containers nodig hebt.

Stap 4: Toegang tot het Docker-containerbestandssysteem

Het is mogelijk om een opdrachtprompt in een container uit te voeren en toegang te krijgen tot het bestandssysteem van de container met behulp van docker exec, wat een opdrachtregelprogramma is. Voer als voorbeeld “Hello World” uit en bekijk hoe lang het duurt voordat de docker exec-opdracht is voltooid. Voor deze handleiding kan de Docker Hub-image van Nginx worden gebruikt. Maak een nieuwe map aan met de naam nginx en ga er naartoe:

U zou nu een docker-compose.yml-bestand moeten hebben, dat u kunt openen in een teksteditor:

Voeg vervolgens het volgende toe aan het bestand:

Het is tijd om de applicatie af te sluiten. Gebruik de volgende opdracht om de Nginx-container op de achtergrond te starten:

Docker Compose on CentOS 1

Docker Compose zal de Nginx-image downloaden en de container op de achtergrond uitvoeren. Om door te gaan, moet u de CONTAINER ID van de container invoeren. U kunt alle momenteel actieve containers bekijken met de volgende opdracht:

U ziet het volgende:

 Docker Compose on CentOS 4

Als u het bestandssysteem in deze container wilt wijzigen met behulp van docker exec, gebruikt u de unieke ID van de container (in dit geval f139d0d78ca7) om een shell in de container te openen:

sudo docker exec -it

Een interactieve terminal kan bewerkt worden met de optie -t, terwijl /bin/bash de container voorziet van een bash-shell. Dit is de bash-prompt die u daarna voor de container zult zien:

Binnen uw container vindt u een opdrachtprompt. Het herstarten van de container zal alle wijzigingen die u heeft aangebracht overschrijven, tenzij u werkt in een map die is opgeslagen als onderdeel van een datavolume. Als u gewend bent te werken met Linux-opdrachtregelvoorzieningen, moet u weten dat de meeste Docker-images worden geproduceerd met de meest elementaire Linux-installaties.

Conclusie

We hebben u door de stappen geleid voor het installeren van de huidige versie van Docker Compose voor het beheren van multi-containerapplicaties op CentOS 7. Het vermogen van Docker Compose om gelijktijdig een groot aantal containers op te starten en af te sluiten is indrukwekkend. Het overstappen van sjablonen naar applicaties duurt slechts enkele minuten. Dus als uw werk het tegelijkertijd uitvoeren van meerdere containers omvat, is het blijven gebruiken van Docker Compose een uitstekende optie. Toch is het geen universele oplossing. U kunt ook betere opties vinden, afhankelijk van uw specifieke behoeften, bijvoorbeeld Kubernetes.

Om de kracht van Docker Compose verder te verkennen, kunt u deze handleidingen raadplegen van onze blog:

Veel computerplezier!

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.