La oss bli kjent med Docker-arkitekturen og dens essensielle komponenter.
Jeg antar at du har en grunnleggende forståelse av Docker. Hvis ikke, kan du referere til denne forrige artikkelen.
Jeg tror du forstår viktigheten av Docker i DevOps. Nå bak dette fantastiske verktøyet, må det være en fantastisk, gjennomtenkt arkitektur. Ikke sant?
Men før jeg snakker om det, la meg vise frem de forrige og nåværende virtualiseringssystemene.
Innholdsfortegnelse
Tradisjonell vs. ny generasjons virtualisering
Tidligere pleide vi å lage virtuelle maskiner, og hver VM hadde et OS som tok mye plass og gjorde det tungt.
Nå i docker-containers tilfelle har du et enkelt OS, og ressursene deles mellom containerne. Derfor er den lett og støvler på sekunder.
Docker-arkitektur
Nedenfor er det enkle diagrammet over en Docker-arkitektur.
La meg forklare deg komponentene i en docker-arkitektur.
Docker Engine
Det er kjernedelen av hele Docker-systemet. Docker Engine er en applikasjon som følger klient-server-arkitektur. Den er installert på vertsmaskinen. Det er tre komponenter i Docker Engine:
- Server: Det er docker-demonen kalt dockerd. Den kan lage og administrere docker-bilder. Containere, nettverk osv.
- Rest API: Den brukes til å instruere docker daemon hva den skal gjøre.
- Kommandolinjegrensesnitt (CLI): Det er en klient som brukes til å legge inn docker-kommandoer.
Docker-klient
Docker-brukere kan samhandle med Docker gjennom en klient. Når noen docker-kommandoer kjører, sender klienten dem til dockerd daemon, som utfører dem. Docker API brukes av Docker-kommandoer. Docker-klient kan kommunisere med mer enn én demon.
Docker-registre
Det er stedet der Docker-bildene er lagret. Det kan være et offentlig docker-register eller et privat docker-register. Docker Hub er standardstedet for docker-bilder, butikkenes offentlige register. Du kan også opprette og kjøre ditt eget private register.
Når du utfører docker pull eller docker run-kommandoer, hentes det nødvendige docker-bildet fra det konfigurerte registeret. Når du utfører docker-push-kommandoen, lagres docker-bildet i det konfigurerte registeret.
Docker-objekter
Når du jobber med Docker, bruker du bilder, containere, volumer, nettverk; alle disse er Docker-objekter.
Bilder
Docker-bilder er skrivebeskyttede maler med instruksjoner for å lage en docker-beholder. Docker-bilde kan hentes fra en Docker-hub og brukes som det er, eller du kan legge til flere instruksjoner til basisbildet og lage et nytt og modifisert docker-bilde. Du kan også lage dine egne docker-bilder ved å bruke en dockerfil. Lag en dockerfil med alle instruksjonene for å lage en beholder og kjøre den; det vil lage ditt tilpassede docker-bilde.
Docker-bilde har et basislag som er skrivebeskyttet, og det øverste laget kan skrives. Når du redigerer en dockerfil og bygger den på nytt, blir bare den modifiserte delen gjenoppbygd i det øverste laget.
Containere
Etter at du har kjørt et docker-bilde, oppretter det en docker-beholder. Alle applikasjonene og deres miljø kjører inne i denne beholderen. Du kan bruke Docker API eller CLI til å starte, stoppe, slette en docker-beholder.
Nedenfor er en eksempelkommando for å kjøre en ubuntu docker-beholder:
docker run -i -t ubuntu /bin/bash
Volumer
De vedvarende dataene som genereres av docker og brukes av Docker-beholdere, lagres i Volumes. De administreres fullstendig av docker gjennom docker CLI eller Docker API. Volumer fungerer på både Windows- og Linux-beholdere. I stedet for å bestå data i en beholders skrivbare lag, er det alltid et godt alternativ å bruke volumer for det. Volumets innhold eksisterer utenfor livssyklusen til en beholder, så bruk av volum øker ikke størrelsen på en beholder.
Du kan bruke -v eller -mount flagg for å starte en beholder med et volum. I denne eksempelkommandoen bruker du geekvolume volum med tipsbilk.net container.
docker run -d --name tipsbilk.net -v geekvolume:/app nginx:latest
Nettverk
Docker-nettverk er en passasje der alle de isolerte containerne kommuniserer. Det er hovedsakelig fem nettverksdrivere i docker:
Konklusjon
Jeg håper dette gir deg en idé om Docker-arkitektur og dens essensielle komponenter. Naviger rundt i Docker for å lære mer, og hvis du er interessert i å få praktisk opplæring, sjekk ut dette Docker Mastery-kurs.
Likte du å lese artikkelen? Hva med å dele med verden?