Docker-tutorial for begyndere: Grundlæggende, Architecture, Containere

Hvad er Docker?

Docker er en softwareudviklingsplatform til virtualisering med flere Operating-systemer, der kører på den samme vært. Det hjælper med at adskille infrastruktur og applikationer for at kunne levere software hurtigt. I modsætning til Hypervisors, som bruges til at skabe VM (virtuelle maskiner), udføres virtualisering i Docker på systemniveau, også kaldet Docker-containere.

Som du kan se forskellen på billedet nedenfor, kører Docker-containere oven på værtens Operation system. Dette hjælper dig med at forbedre effektiviteten og sikkerheden. Desuden kan vi køre flere containere på den samme infrastruktur, end vi kan køre virtuelle maskiner, fordi containere bruger færre ressourcer.

Virtualisering i Docker vs Hypervisor
Virtualisering i Docker vs Hypervisor

I modsætning til VM'erne, som kan kommunikere med værtens hardware (f.eks. Ethernet-adapter for at skabe flere virtuelle adaptere), kører Docker-containere i et isoleret miljø oven på værtens OS. Også selvom din vært kører Windows OS, kan du have Linux-billeder kørende i containere ved hjælp af Hyper-V, som automatisk opretter en lille VM for at virtualisere systemets basisbillede, i dette tilfælde, Linux.

Hvorfor bruge Docker?

  • Docker er computersoftware, der bruges til virtualisering for at have flere Operating systemer kører på den samme vært
  • Docker er klient-server type applikation, hvilket betyder, at vi har klienter, der videresender til serveren
  • Docker-billeder er "kildekoden" til vores containere; vi bruger dem til at bygge
  • Dockerfile har to typer registre 1.) offentlige og 2) private registre
  • Containere er de organisatoriske enheder i Docker-volumen. 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.

Docker Architecture

Lad os nu tale om Docker-hovedkomponenter i Docker i denne Docker-containertutorial Archilære:

Docker Architecture
Docker Architecture

Docker Engine

Docker er klient-server type applikation, hvilket betyder, at vi har klienter, der videresender til serveren. Så Docker-dæmonen kaldet: dockerd er Docker-motoren, som repræsenterer serveren. Docker-dæmonen og klienterne kan køres på den samme eller fjernvært, og de kommunikerer gennem kommandolinjeklient-binær, såvel som en fuld RESTful API at interagere med dæmonen: dockerd.

Docker billeder

Docker-billeder er "kildekoden" til vores containere; vi bruger dem til at bygge containere. De kan have software forudinstalleret, som fremskynder implementeringen. De er bærbare, og vi kan bruge eksisterende billeder eller bygge vores egne.

Docker registre

Docker gemmer de billeder, vi bygger, i registre. Der er offentlige og private registre. Docker-firmaet 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 nu.

Dockerbeholdere

Containere er de organisatoriske enheder og et af Dockers grundlæggende koncept. Når vi bygger et image og begynder at køre det; vi kører i en container. Containeranalogien bruges på grund af portabiliteten af ​​den software, vi har kørende i vores container. Vi kan flytte den, med andre ord "sende" softwaren, ændre, administrere, skabe eller slippe af med den, ødelægge den, ligesom fragtskibe kan gøre med 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.

Nedenfor har vi et billede, som perfekt repræsenterer interaktionen mellem de forskellige komponenter, og hvordan Docker containerteknologi fungerer.

Hvad vi har flere dockers kommandoer docker pull, docker run .. vi vil tale mere om det senere.

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 vi bruge Docker-teamets DEB-pakker.

For det, nogle forudsætninger Ubuntu pakker er påkrævet.

Brug nedenstående kommando til at installere Ubuntu pakker

$ 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-depotet.

Brug nedenstående Docker-kommando til at tilføje lageret

$ 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 lageret og få GPG-nøglen automatisk tilføjet til din vært.

Kommandoen lsb_release skal udfylde Ubuntu distributionsversion af din vært.

Trin 4) Efter tilføjelse af GPG-nøglen,

Opdater APT-kilder ved hjælp af nedenstående Docker-kommando

$ sudo apt-get update

Vi kan nu installere selve Docker-pakken.

Trin 5) Når APT-kilderne er opdateret,

Begynd at installere Docker-pakkerne på Ubuntu ved at bruge nedenstående Docker-kommando

$ sudo apt-get install docker-ce

Den ovennævnte kommando installerer Docker og andre yderligere 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: Docker for Windows Kræver Windows 10 Pro eller Enterprise version 14393, eller Windows server 2016 RTM til at køre

Sådan bruger du Docker ved hjælp af grundlæggende Docker-kommandoer

Sådan bruger du Docker ved hjælp af grundlæggende Docker-kommandoer:

Den mest grundlæggende kommando, vi skal køre efter installation af Docker, er $ docker info, som vi sagde tidligere.

$ sudo docker info

Du bør få det lignende eller følgende resultat

Brug Docker ved hjælp af grundlæggende Docker-kommandoer

Som vi kan se i ovenstående Docker-eksempel, har vi information om docker-containere, hvor mange der kører, er sat på pause eller stoppet, og hvor mange billeder vi har downloadet. Så lad os få vores første billede i denne Docker-kommando-tutorial.

$ sudo docker pull alpine

Med denne kommando beder vi docker om at downloade billedet alpine, for at trække det fra det offentlige register, 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 i denne Docker-vejledning.

$ sudo docker run -i -t alpine /bin/bash

Hvis vi kører kommandoen, bliver vi sendt direkte til alpinens terminal. -i-flaget holder STDIN åben fra beholderen, selv når du ikke er knyttet til den. Denne vedvarende standardinput er halvdelen af, hvad du har brug for til en interaktiv shell. -t-flaget er den anden halvdel, og som instruerer Docker om at tildele en pseudo-tty til containeren. Dette giver os en interaktiv skal i den nye container. Vi forlader beholderen med en simpel exit-kommando.

Nu i denne Docker grundlæggende tutorial kan vi prøve at køre en Ubuntu billede.

$ sudo docker run -it ubuntu /bin/bash

Du kan lægge mærke til docker-tjek for billedet lokalt, og hvis det ikke er der, trækkes billedet automatisk fra billedbiblioteket, og igen har vi en interaktiv skal kørende. Vi kan også navngive containerne, mens vi kører dem.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

og vi forlader igen.

Vi kan også køre container, vi tidligere har oprettet, uden en interaktiv shell.

$ sudo docker start container_name

Og stop containerskrivningen docker stop container_name

$ sudo docker stop container_name

Hvis vi vil se alle kørende containere, kører vi bare

$ docker ps

Og for alle containere tilføjer vi "- a" i slutningen af ​​den samme kommando, som denne docker ps -a.

Denne kommando viser Containers ID, hvilket billede der bruges, da det blev oprettet, kørestatus, eksponerede porte og tilfældigt genereret navn til containeren for nemmere administration.

Når vi kører containere vil vi også gerne vide hvor mange ressourcer de bruger, til det formål kan vi bruge kommandoen.

$ docker stats

Du kan også se hvilke billeder vi har downloadet lokalt og info om dem.

$ sudo docker images

Kommandoen i ovenstående Docker-eksempel viser docker-billedet med et tag, der viser vores billedversion, et karakteristisk billed-id, hvornår blev oprettet og billedstørrelse.

Hvad er virtualisering?

Tidligere var processen med at implementere en tjeneste langsom og smertefuld. Først skrev udviklerne kode; så ville driftsteamet implementere det på bare metal-maskiner, hvor de skulle se efter biblioteksversioner, patches og sprogkompilere for at koden kunne virke. Hvis der var nogle fejl eller fejl, ville processen starte forfra, udviklerne ville rette det, og så igen var det operationelle team der for at implementere.

Der var en forbedring med oprettelsen af ​​Hypervisors. Hypervisorer har flere Virtuelle maskiner eller VM'er på den samme vært, som kan køre eller slukkes. VM'er reducerede ventetiden for implementering af kode og fejlrettelser på en stor måde, men den virkelige game changer var Docker-containere.

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å Docker jobsamtale spørgsmål og svar for friskere såvel som erfarne fagfolk.

Resumé

  • Docker er en softwareudviklingsplatform til virtualisering med flere Operating-systemer, der kører på den samme vært. Det hjælper med at adskille infrastruktur og applikationer for at kunne levere software hurtigt.
  • Docker Archilære: Docker Engine, Docker Images, Docker Registries, Docker Containers.
  • Docker Engine: Docker er klient-server type applikation, hvilket betyder, at vi har klienter, der videresender til serveren. Så Docker-dæmonen kaldet: dockerd er Docker-motoren, som repræsenterer serveren.
  • Docker-billeder: Docker-billeder er "kildekoden" til vores containere; vi bruger dem til at bygge containere. De kan have software forudinstalleret, som fremskynder implementeringen. De er bærbare, og vi kan bruge eksisterende billeder eller bygge vores egne.
  • Docker registre: Docker gemmer de billeder, vi bygger, i registre. Der er offentlige og private registre. Docker-firmaet 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 nu.
  • Docker containere: Containere er de organisatoriske enheder og et af Dockers grundlæggende koncept. Når vi bygger et image og begynder at køre det; vi kører i en container. Containeranalogien bruges på grund af portabiliteten af ​​den software, vi har kørende i vores container.

Opsummer dette indlæg med: