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.

  • ???? Containerisering: Docker virtualiserer på operativsystemniveau, så containere deler værtskernen og bruger færre ressourcer end virtuelle maskiner.
  • 🧱 Archilære: Docker-motoren (dockerd), billeder, registre og containere danner klient-server-arkitekturen bag alle Docker-arbejdsgange.
  • 📦 Billeder og containere: Et billede er en skrivebeskyttet skabelon, mens en container er en kørende kopi, og ét billede kan starte mange containere.
  • 🗄️ Registre: Docker Hub gemmer offentlige og private billeder, hvilket giver dig millioner af brugsklare billeder, som du kan hente og køre.
  • 🇧🇷 Installation: On Ubuntu Du tilføjer Docker APT-repositoryet og GPG-nøglen, og installerer derefter docker-ce-pakken med apt-get.
  • ⌨️ Kernekommandoer: Administrer containere med docker pull, run, start, stop, ps, stats og images fra kommandolinjen.

Docker-vejledning for begyndere, der dækker arkitektur og installation på Ubuntuog grundlæggende containerkommandoer

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.

Virtualisering i Docker vs Hypervisor
Virtualisering i Docker vs Hypervisor

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 ArchiTekturkomponenter: motor, billeder, registre og containere

Docker Architecture

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.

Brug Docker ved hjælp af grundlæggende Docker-kommandoer, der viser outputtet for docker-info.

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.

Ofte Stillede Spørgsmål

En Docker-container deler værtsoperativsystemets kerne og isolerer kun applikationen, så den er let og starter på få sekunder. En virtuel maskine indeholder et komplet gæsteoperativsystem, hvilket gør den større, langsommere at starte op og mere ressourcekrævende.

En Dockerfile er et almindeligt tekstscript, der indeholder instruktioner som FROM, RUN, COPY og CMD. Docker læser disse instruktioner for automatisk at opbygge et billede. Hver linje tilføjer et lag, så du kan reproducere det samme miljø på enhver maskine.

Docker Compose definerer og kører multi-container applikationer ved hjælp af en enkelt YAML-fil. Du beskriver hver tjeneste, netværk og volumen én gang, og starter derefter alt med docker compose up-kommandoen. Det er ideelt til lokal udvikling og test af forbundne tjenester.

Docker bygger og kører individuelle containere, mens Kubernetes orkestrerer mange containere på tværs af en klynge. Kubernetes tilføjer automatisk skalering, selvreparation og load balancing. I praksis pakker Docker applikationen, og Kubernetes administrerer den i produktion.

Docker Engine er gratis og open source under Apache 2.0-licensen. Docker Desktop er gratis til personlig brug, uddannelse og små virksomheder, men større virksomheder kræver et betalt abonnement. Docker Hub tilbyder både gratis og betalte billedhostingplaner.

Docker kører native på Linux og understøttes på Windows og macOS via Docker Desktop. Til Windows og Mac, Docker bruger en let virtuel maskine til at køre den Linux-kerne, som containere kræver. De fleste containerbilleder er Linux-baserede.

AI-assistenter genererer Dockerfiles, docker-compose-filer og CLI-kommandoer fra letforståelige prompts. De læser også build-logs og containerfejl, forklarer årsagen og foreslår rettelser. Gennemgå altid den genererede konfiguration for korrekte billedtags, stier og sikkerhed, før du kører den.

Ja. GitHub Copilot og ChatGPT kan udarbejde Dockerfiles- og Compose-filer ud fra en kort kommentar eller beskrivelse. De fremskynder standardindstillingerne, men du bør verificere basisbilleder, versioner og bedste praksis, da genererede snippets kan bruge forældede standardindstillinger.

Opsummer dette indlæg med: