Docker-tutorial for begyndere: Grundlæggende, Architecture, Containere
⚡ Smart opsummering
Docker er en containerplatform, der pakker applikationer og deres afhængigheder i bærbare, lette containere. Denne oversigt forklarer Docker-arkitektur, installation på Ubuntu, essentielle kommandoer, og hvordan containere adskiller sig fra traditionelle virtuelle maskiner for hurtigere softwarelevering.

Docker er en af de mest populære containeriseringsplatforme, der bruges i moderne DevOps og cloud-workflows. Denne Docker-tutorial for begyndere forklarer, hvad Docker er, hvordan Docker-arkitekturen fungerer, og hvordan man installerer Docker på Ubuntuog de grundlæggende kommandoer, der bruges til at administrere billeder og containere.
Hvad er Docker?
Docker er en softwareudviklingsplatform til virtualisering, der lader flere operativsystemer køre på den samme vært. Den hjælper dig med at adskille infrastruktur fra applikationer, så du hurtigt kan levere software. I modsætning til hypervisorer, der bruges til at oprette virtuelle maskiner (VM'er), udfører Docker virtualisering på systemniveau ved hjælp af enheder kaldet Docker-containere.
Docker-containere kører oven på værtens operativsystem, som vist på billedet nedenfor. Dette forbedrer både effektivitet og sikkerhed. Du kan også køre flere containere end virtuelle maskiner på den samme infrastruktur, fordi containere bruger færre ressourcer.

I modsætning til VM'er, som kan kommunikere direkte med værtens hardware (f.eks. en Ethernet-adapter, der opretter flere virtuelle adaptere), kører Docker-containere i et isoleret miljø oven på værtens OS. Selv hvis din vært kører Windows, du kan køre Linux billeder i containere ved hjælp af Hyper-V, som automatisk opretter en lille VM til at virtualisere basisbilledet.
Nu hvor du ved, hvad Docker er, lad os se på de vigtigste grunde til, at teams vælger det.
Hvorfor bruge Docker?
Her er de vigtigste grunde til at bruge Docker:
- Docker er software, der bruges til virtualisering, hvilket muliggør flere operativsystemer at køre på den samme vært.
- Docker er en klient-server-applikation, hvilket betyder, at klienter kommunikerer med en server.
- Docker-billeder fungerer som "kildekode" for containere; du bruger dem til at bygge.
- Docker understøtter to typer registre: offentlige og private.
- Containere er Dockers organisatoriske enheder. Kort sagt er et image en skabelon, og en container er en kopi af den skabelon, så du kan køre flere containere fra det samme image.
Disse fordele kommer fra den måde, Docker er designet på. I det følgende afsnit gennemgås Docker-arkitekturen og dens kernekomponenter.
Docker Architecture
I denne Docker-container-tutorial vil vi nu se på hovedkomponenterne i Docker-arkitekturen.
Docker Engine
Docker er en klient-server-applikation, hvilket betyder, at vi har klienter, der videresender anmodninger til en server. Docker-daemonen, kaldet dockerd, er den Docker-motor, der repræsenterer serveren. Daemonen og klienterne kan køre på den samme vært eller en fjern vært, og de kommunikerer via en kommandolinjebaseret klientbinærfil og en fuld fil. RESTful API som interagerer med dockerd.
Docker billeder
Docker-billeder er "kildekoden" til vores containere; vi bruger dem til at bygge containere. Billeder kan have forudinstalleret software, hvilket fremskynder implementeringen. De er bærbare, og du kan bruge eksisterende billeder eller bygge dine egne.
Docker registre
Docker gemmer de billeder, vi opbygger, i registre. Der findes offentlige og private registre. Docker har et offentligt register kaldet Docker-hub, hvor du også kan gemme billeder privat. Docker Hub har millioner af billeder, som du kan begynde at bruge med det samme.
Dockerbeholdere
Containere er Dockers organisatoriske enheder og et af dets grundlæggende koncepter. Når vi bygger et image og kører det, kører vi det inde i en container. Containeranalogien bruges på grund af portabiliteten af den software, der kører i den: du kan flytte, "sende", ændre, administrere, oprette eller ødelægge den, ligesom fragtskibe håndterer rigtige containere.
Enkelt sagt er et billede en skabelon, og en beholder er en kopi af den skabelon. Du kan have flere beholdere (kopier) af det samme billede.
Samspillet mellem disse forskellige komponenter viser, hvordan Docker-containerteknologi fungerer sammen. Kommandoer som docker pull og docker run, som vi dækker senere, giver dig mulighed for at administrere denne arbejdsgang.
Med arkitekturen i tankerne, lad os installere Docker, så du selv kan afprøve disse komponenter.
Sådan installeres Docker på Linux/Ubuntu
Nedenfor er en trin-for-trin Docker-installationsproces på Linux/Ubuntu:
Trin 1) For at installere Docker skal du bruge Docker-teamets DEB-pakker. Først nogle forudsætninger Ubuntu Pakker er påkrævet. Brug kommandoen nedenfor til at installere dem.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*tegnet "\" er ikke nødvendigt, det bruges til den nye linje, hvis du vil kan du skrive kommandoen uden at bruge "\" på kun én linje.
Trin 2) Tilføj den officielle Docker GPG-nøgle med fingeraftrykket. Brug nedenstående Docker-kommando til at indtaste GPG-nøglen.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Trin 3) Tilføj derefter Docker APT-arkivet ved hjælp af kommandoen nedenfor.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Du bliver muligvis bedt om at bekræfte, at du ønsker at tilføje arkivet og automatisk tilføje GPG-nøglen til din vært. Kommandoen lsb_release bør udfylde Ubuntu distributionsversion af din vært.
Trin 4) Når du har tilføjet GPG-nøglen, skal du opdatere APT-kilderne ved hjælp af nedenstående Docker-kommando.
$ sudo apt-get update
Du kan nu installere selve Docker-pakken.
Trin 5) Når APT-kilderne er opdateret, skal du begynde at installere Docker-pakkerne på Ubuntu ved hjælp af nedenstående Docker-kommando.
$ sudo apt-get install docker-ce
Kommandoen ovenfor installerer Docker og andre nødvendige pakker. Før Docker 1.8.0 var pakkenavnet lxc-docker, og mellem Docker 1.8 og 1.13 var pakkenavnet docker-engine.
BEMÆRK VENLIGST: Docker til Windows Kræver Windows 10 Pro eller Enterprise version 14393, eller Windows Server 2016 RTM, for at køre.
Sådan bruger du Docker ved hjælp af grundlæggende Docker-kommandoer
Sådan bruger du Docker med et par grundlæggende Docker-kommandoer.
Den mest grundlæggende kommando, du bør køre efter installation af Docker, er docker info, som tidligere nævnt.
$ sudo docker info
Du burde få et resultat, der ligner det følgende.
Som vist i Docker-eksemplet ovenfor, kan vi se oplysninger om Docker-containere: hvor mange der kører, er sat på pause eller er stoppet, og hvor mange billeder der er blevet downloadet. Lad os nu hente vores første billede.
$ sudo docker pull alpine
Med denne kommando beder vi Docker om at downloade alpine-aftrykket og trække det fra det offentlige register i den seneste version, som er indstillet som standard.
*alpine er et minimalt Docker-billede baseret på Alpine Linux med et komplet pakkeindeks og kun 5 MB i størrelse.
Hvis vi vil køre billedet som en container, bruger vi følgende kommando.
$ sudo docker run -i -t alpine /bin/bash
Kørsel af kommandoen sender os direkte til Alpine-terminalen. -i-flaget holder STDIN åben fra containeren, selv når du ikke er tilknyttet den; dette vedvarende standardinput er den ene halvdel af, hvad du behøver til en interaktiv shell. -t-flaget er den anden halvdel og instruerer Docker i at tildele en pseudo-tty til containeren. Sammen giver de os en interaktiv shell i den nye container. Vi afslutter containeren med en simpel exit-kommando.
I denne Docker-grundlæggende tutorial kan vi nu prøve at køre en Ubuntu billede.
$ sudo docker run -it ubuntu /bin/bash
Bemærk at Docker tjekker for billedet lokalt, og hvis det ikke er der, hentes billedet automatisk fra billedbiblioteket. Igen har vi en interaktiv shell kørende. Vi kan også navngive containere, mens vi kører dem.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Så afslutter vi igen. Vi kan også køre en container, vi tidligere har oprettet, uden en interaktiv shell.
$ sudo docker start container_name
Og vi stopper containeren ved at skrive docker stop container_name.
$ sudo docker stop container_name
Hvis vi vil se alle kørende containere, kører vi blot følgende.
$ docker ps
For alle containere tilføjer vi "-a" i slutningen af den samme kommando, ligesom docker ps -a. Denne kommando viser container-ID'et, hvilket image den bruger, hvornår den blev oprettet, dens kørestatus, eksponerede porte og et tilfældigt genereret navn for nemmere administration.
Når vi kører containere, vil vi ofte gerne vide, hvor mange ressourcer de bruger. Til det formål kan vi bruge følgende kommando.
$ docker stats
Du kan også se, hvilke billeder du har downloadet lokalt, sammen med oplysninger om dem.
$ sudo docker images
Kommandoen i Docker-eksemplet ovenfor viser hvert Docker-billede med et tag, der viser billedversionen, et unikt billed-ID, oprettelsesdatoen og billedstørrelsen.
For at forstå, hvorfor containere er en sådan forbedring, er det nyttigt at se på, hvordan virtualisering har udviklet sig.
Hvad er virtualisering?
Tidligere var det langsomt og besværligt at implementere en tjeneste. Udviklere skrev kode, og derefter implementerede driftsteamet den på bare-metal-maskiner, hvor de skulle holde øje med biblioteksversioner, patches og sprogcompilere, så koden fungerede. Hvis der var fejl eller fejl, startede processen forfra: udviklerne løste problemet, og driftsteamet implementerede den igen.
Tingene blev bedre med oprettelsen af hypervisorer. Hypervisorer kører flere virtuelle maskiner, eller VM'er, på den samme vært, som enten kører eller er slukket. VM'er reducerede ventetiden for implementering af kode og rettelse af fejl betydeligt, men den virkelige game changer var Docker-containere.
Dockers popularitet er også drevet af orkestreringsværktøjer, der administrerer containere i stor skala, såsom KubernetesFør vi går videre, er her en hurtig oversigt over de vigtigste Docker-kommandoer.
Vigtige Docker-kommandoer
Nedenfor er de vigtige Docker-kommandoer:
| Kommando | Beskrivelse |
|---|---|
| docker info | Informationskommando |
| docker-pull | Download et billede |
| docker run -i -t billednavn /bin/bash | Kør billede som en beholder |
| docker start vores_container | Start container |
| docker stop container_name | Stop container |
| docker ps | Liste over alle kørende containere |
| docker statistik | Containeroplysninger |
| docker billeder | Liste over downloadede billeder |
| Docker oprydning | Dræb alle kørende containere. |
Læs også disse Docker jobsamtale spørgsmål og svar for både nyuddannede og erfarne fagfolk.

