Docker-architectuur en zijn componenten voor beginners

Laten we kennis maken met de Docker-architectuur en de essentiële componenten ervan.


Ik neem aan dat je een basiskennis hebt van Docker. Zo niet, dan kunt u naar het vorige artikel verwijzen.

Docker voor beginners begrijpen – de containertechnologie

Ik denk dat je het belang van Docker in DevOps begrijpt. Nu achter deze fantastische tool moet er een verbazingwekkende, goed doordachte architectuur zijn. Is het niet?

Maar voordat ik daarover praat, wil ik het vorige en huidige virtualisatiesysteem laten zien.

Traditionele vs. nieuwe generatie virtualisatie

Eerder maakten we virtuele machines en elke VM had een besturingssysteem dat veel ruimte in beslag nam en het zwaar maakte.

In het geval van docker-containers heeft u één besturingssysteem en worden de bronnen gedeeld tussen de containers. Daarom is het lichtgewicht en start het binnen enkele seconden op.

Traditioneel versus nieuw gen

Docker-architectuur

Hieronder ziet u het eenvoudige diagram van een Docker-architectuur.

Docker-architectuur

Laat me je de componenten van een docker-architectuur uitleggen.

Docker Engine

Het is het kernonderdeel van het hele Docker-systeem. Docker Engine is een applicatie die volgt client-server architectuur. Het is geïnstalleerd op de hostcomputer. Er zijn drie componenten in de Docker Engine:

  • Server: Het is de docker-daemon genaamd gedokt. Het kan docker-afbeeldingen maken en beheren. Containers, netwerken enz.
  • Rest API: Het wordt gebruikt om docker-daemon te instrueren wat te doen.
  • Command Line Interface (CLI): Het is een client die wordt gebruikt om docker-opdrachten in te voeren.

Docker-client

Docker-gebruikers kunnen via een client communiceren met Docker. Wanneer er docker-opdrachten worden uitgevoerd, stuurt de client deze naar de dockerd-daemon, die ze uitvoert. Docker API wordt gebruikt door Docker-opdrachten. Docker-client kan communiceren met meer dan één daemon.

Docker-registers

Dit is de locatie waar de Docker-afbeeldingen worden opgeslagen. Het kan een openbaar docker-register of een privé-docker-register zijn. Docker Hub is de standaardplaats van docker-images, het openbare register van de winkels. U kunt ook uw eigen privé-register maken en uitvoeren.

Wanneer u docker pull- of docker-opdrachten uitvoert, wordt de vereiste docker-image opgehaald uit het geconfigureerde register. Wanneer u de docker-pushopdracht uitvoert, wordt de docker-image opgeslagen in het geconfigureerde register.

Docker-objecten

Wanneer u met Docker werkt, gebruikt u afbeeldingen, containers, volumes, netwerken; dit zijn allemaal Docker-objecten.

Afbeeldingen

Docker-afbeeldingen zijn alleen-lezen sjablonen met instructies voor het maken van een docker-container. Docker-image kan uit een Docker-hub worden gehaald en gebruikt zoals het is, of u kunt aanvullende instructies aan de basisimage toevoegen en een nieuwe en gewijzigde docker-image maken. U kunt uw eigen docker-afbeeldingen ook maken met behulp van een docker-bestand. Maak een dockerfile met alle instructies om een ​​container te maken en voer deze uit; het zal uw aangepaste docker-afbeelding maken.

Docker-afbeelding heeft een basislaag die alleen-lezen is en de bovenste laag kan worden geschreven. Wanneer u een dockerfile bewerkt en opnieuw opbouwt, wordt alleen het gewijzigde onderdeel opnieuw opgebouwd in de bovenste laag.

Containers

Nadat u een docker-image hebt uitgevoerd, wordt er een docker-container gemaakt. Alle applicaties en hun omgeving draaien in deze container. U kunt Docker API of CLI gebruiken om een ​​docker-container te starten, stoppen en verwijderen.

Hieronder vindt u een voorbeeldopdracht om een ​​ubuntu-docker-container uit te voeren:

docker voert -i -t ubuntu / bin / bash uit

Volumes

De permanente gegevens die door Docker worden gegenereerd en door Docker-containers worden gebruikt, worden opgeslagen in Volumes. Ze worden volledig beheerd door docker via docker CLI of Docker API. Volumes werken op zowel Windows- als Linux-containers. In plaats van gegevens vast te houden in de beschrijfbare laag van een container, is het altijd een goede optie om er volumes voor te gebruiken. De inhoud van Volume bestaat buiten de levenscyclus van een container, dus het gebruik van volume vergroot de grootte van een container niet.

U kunt de vlag -v of –mount gebruiken om een ​​container met een volume te starten. In deze voorbeeldopdracht gebruikt u geekvolume-volume met geekflare-container.

docker run -d –name geekflare -v geekvolume: / app nginx: laatste

Netwerken

Docker-netwerken zijn een doorgang waardoor alle geïsoleerde containers communiceren. Docker bevat hoofdzakelijk vijf netwerkstuurprogramma’s:

  1. Brug: Het is het standaard netwerkstuurprogramma voor een container. U gebruikt dit netwerk wanneer uw applicatie draait op stand-alone containers, d.w.z. meerdere containers die communiceren met dezelfde docker-host.
  2. Gastheer: Deze driver verwijdert de netwerkisolatie tussen docker-containers en docker-host. Het wordt gebruikt wanneer u geen netwerkisolatie tussen host en container nodig heeft.
  3. Overlay: Dit netwerk stelt zwermdiensten in staat met elkaar te communiceren. Het wordt gebruikt wanneer de containers op verschillende Docker-hosts worden uitgevoerd of wanneer zwermservices worden gevormd door meerdere applicaties.
  4. Geen: Deze driver schakelt alle netwerken uit.
  5. macvlan: Deze driver wijst een mac-adres toe aan containers om ze op fysieke apparaten te laten lijken. Het verkeer wordt tussen containers geleid via hun mac-adressen. Dit netwerk wordt gebruikt wanneer u wilt dat de containers er bijvoorbeeld uitzien als een fysiek apparaat, terwijl u een VM-installatie migreert.

Conclusie

Ik hoop dat dit je een idee geeft over de Docker-architectuur en de essentiële componenten ervan. Navigeer door Docker voor meer informatie en als je geïnteresseerd bent in praktische training, bekijk dit dan Docker Mastery-cursus.

TAGS:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map