Docker. Opretter pakkede applikationer kaldet containere. Hver beholder giver et isoleret miljø svarende til en Virtual Machine. (Vm). I modsætning til VMS, Docker Containere Kør ikke et fuldt operativsystem . De deler din værts kerne og virtualisere på et software niveau.
Docker Basics.
Docker er blevet et standardværktøj til softwareudviklere og systemadministratorer. Det er en pæn måde at hurtigt starte applikationer uden at påvirke resten af dit system. Du kan spinde en ny service med en enkelt
Docker Run.
kommando.
Beholdere indkapsler alt, hvad der er nødvendigt for at køre en ansøgning, fra OS-pakkeafhængigheder til din egen kildekode. Du definerer en containerens oprettelsesstrin som instruktioner i en
Dockerfile.
. Docker bruger Dockerfile til at konstruere en
billede
.
Billeder definerer den software, der er tilgængelig i beholdere. Dette svarer løst til at starte en VM med et operativsystem ISO. Hvis du opretter et billede, vil enhver dockerbruger være i stand til at starte din app med
Docker Run.
.
Hvordan virker Docker?
Containere anvender operativsystem kernel funktioner til at give delvist virtualiserede miljøer. Det er muligt at oprette containere fra bunden med kommandoer som
chroot.
. Dette starter en proces med en bestemt rodmappe i stedet for systemroten. Men ved hjælp af kernel funktioner er direkte fiddly, usikker og fejlagtigt.
Docker er en komplet løsning til produktion, distribution og brug af beholdere. Moderne dockerudgivelser består af flere uafhængige komponenter . For det første er der dockeren CLI. , hvilket er det, du interagerer med i din terminal. CLI sender kommandoer til en Docker Daemon. . Dette kan løbe lokalt eller på en fjerntliggende vært . Demonen er ansvarlig for at styre containere og de billeder, de er oprettet fra.
Den endelige komponent kaldes container runtime. . Runtime påberåber kernelfunktioner til faktisk at starte beholdere. Docker er kompatibel med runtimes, der klæber til OCI-specifikation. Denne åbne standard giver mulighed for interoperabilitet mellem forskellige containeriseringsværktøjer.
Du behøver ikke bekymre dig for meget om Dockers indre arbejde, når du først kommer i gang. Installation
Docker.
På dit system vil give dig alt, hvad du behøver for at bygge og køre containere.
Hvorfor bruger så mange mennesker docker?
Beholdere er blevet så populære, fordi de løser mange fælles udfordringer i softwareudvikling. Evnen til at containere en gang og løbe overalt reducerer kløften mellem Dit udviklingsmiljø og dine produktionsservere.
Brug af containere giver dig tillid til, at hvert miljø er identisk. Hvis du har et nyt holdmedlem, behøver de kun
Docker Run.
at oprette deres egen udviklingsinstans. Når du starter din tjeneste, kan du bruge dit Docker-billede til at implementere til produktion. Det
live miljø
Vil nøjagtigt matche din lokale instans, undgå "det virker på min maskine" scenarier.
Docker er mere praktisk end en fuldblæst virtuel maskine. VMS er generelle værktøjer designet til at understøtte enhver mulig arbejdsbyrde. I modsætning hertil er containere lette, selvforsynende og bedre egnet til at smide brugssager. Som Docker deler værtsens kerne, har containere en ubetydelig indvirkning på systemets ydeevne. Container lanceringstid er næsten øjeblikkelig, da du kun starter processer, ikke et helt operativsystem.
Kom godt i gang
Docker er tilgængelig på alle populære Linux-distributioner. Det kører også på Windows og MacOS. Følg Docker Setup Instruktioner til din platform for at få det op og køre.
Du kan kontrollere, at din installation fungerer ved at starte en simpel container:
Docker Run Hello-World
Dette vil starte en ny beholder med det grundlæggende
Hej Verden
billede. Billedet udsender noget output, der forklarer, hvordan man bruger Docker. Beholderen forlader derefter, slipper dig tilbage til din terminal.
Oprettelse af billeder.
Når du har kørt
Hej Verden
, Du er klar til at oprette dine egne dockerbilleder. En dockerfile beskriver, hvordan du kører din tjeneste ved
Installation af den ønskede software
og kopiering i filer. Her er et simpelt eksempel ved hjælp af Apache Webserveren:
Fra HTTPD: Seneste Kør ekko "loadmodule headers_module moduler / mod_headers.so" & gt; & gt; /usr/local/apache2/conf/httpd.conf. Kopier .htaccess /var/www/html/.htaccess. Kopi index.html /var/www/html/index.html. Kopier CSS / / VAR / WWW / HTML / CSS
Det
FRA
linje definerer basisbilledet. I dette tilfælde starter vi fra det officielle Apache-billede. Docker anvender de resterende instruktioner i din dockerfile oven på basisbilledet.
Det
LØB
Stage kører en kommando i beholderen. Dette kan være en hvilken som helst kommando tilgængelig i beholderens miljø. Vi aktiverer
Headers.
Apache-modul, som kunne bruges af
.htaccess.
fil for at oprette routing regler.
De endelige linjer kopierer HTML- og CSS-filerne i din arbejdskatalog i beholderbilledet. Dit billede indeholder nu alt, hvad du behøver for at køre din hjemmeside.
Nu kan du bygge billedet:
Docker Build -T My-Website: V1.
Docker vil bruge din dockerfile til at konstruere billedet. Du vil se output i din terminal, da Docker kører hver af dine instruktioner.
Det
-t.
i kommandoen
Tags dit billede.
med et givet navn (
Min hjemmeside: V1
). Dette gør det lettere at henvise til i fremtiden. Tags har to komponenter, adskilt af en kolon. Den første del sætter billednavnet, mens det andet normalt betegner sin version. Hvis du udelader tyktarmen, vil Docker standard
til anvendelse
seneste
som tagversionen.
Det
.
I slutningen af kommandoen fortæller Docker at bruge Dockerfile i din lokale arbejdskatalog. Dette også også
sætter bygningskonteksten
, så du kan bruge filer og mapper i din arbejdskatalog med
KOPI
instruktioner i din dockerfile.
Når du har oprettet dit billede, kan du starte en beholder ved hjælp af
Docker Run.
:
Docker Run -D -P 8080: 80 My-Website: V1
Vi bruger et par ekstra flag med
Docker Run.
her. Det
-d.
Flag gør Docker CLI at fjerne fra beholderen, så den kan køre i baggrunden. En portkortlægning er defineret hos
-P.
, så port 8080 på dine værtskort til port 80 i beholderen. Du skal se din webside, hvis du besøger
LocalHost: 8080.
i din browser.
Docker billeder er dannet af lag. Hver instruktion i din dockerfile opretter et nyt lag. Du kan bruge avancerede bygningsfunktioner til Reference flere basebilleder , kassere mellemledslag fra tidligere billeder.
Billedregistryser.
Når du har et billede, kan du skubbe det til et register. Registreringer. give centraliseret lagring Så du kan dele containere med andre. Standardregistret er Docker HUB. .
Når du kører en kommando, der refererer til et billede, kontrollerer Docker først, om den er tilgængelig lokalt. Hvis det ikke er, vil det forsøge at trække det fra Docker Hub. Du kan manuelt trække billeder med
Docker Pull.
kommando:
Docker Træk HTTPD: Seneste
Hvis du vil offentliggøre et billede, skal du oprette en
Docker HUB.
konto. Løb
Docker login.
og indtast dit brugernavn og adgangskode.
Næste, tag dit billede ved hjælp af din Docker Hub Brugernavn:
Docker Tag My-Image: Seneste Docker-Hub-Brugernavn / My-Image: Seneste
Nu kan du skubbe dit billede:
Docker Push Docker-Hub-Brugernavn / My-Image: Seneste
Andre brugere vil kunne trække dit billede og starte containere med det.
Du kan Kør dit eget register Hvis du har brug for privat billedopbevaring. Flere tredjeparts tjenester også tilbyde Docker-registre. som alternativer til dockerhub.
Administrere dine containere.
Docker CLI har flere kommandoer til at lade dig styre dine løbende beholdere. Her er nogle af de mest nyttige at vide:
Notering containere.
Docker PS.
Viser dig alle dine løbende beholdere. Tilføjelse af
-en
Flag vil også vise stoppede containere.
Stop og start containere
At stoppe en beholder, løbe
Docker stop min beholder
. Erstatte
min beholder.
med beholderens navn eller ID. Du kan få disse oplysninger fra
ps.
kommando. En stoppet beholder genstartes med
Docker starter min beholder
.
Beholdere kører normalt så længe deres hovedproces forbliver i live.
Genstart politikker
Kontroller, hvad der sker, når en container stopper eller din vært genstarter. Passere
--restart altid
til
Docker Run.
For at gøre en container genstart straks efter den stopper.
Få en skal
Du kan
Kør en kommando i
en beholder bruger
Docker exec min-container min kommando
. Dette er nyttigt, når du vil manuelt påberåbe sig en eksekverbar, der er adskilt til beholderens hovedproces.
Tilføj
-det
Flag, hvis du har brug for interaktiv adgang. Dette lader dig falde ind i en skal ved at køre
docker exec-det min-container sh
.
Overvågning af logfiler.
Docker indsamler automatisk udsender udsendt til en beholders standardindgangs- og udgangsstrømme. Det
Docker logger min beholder
Kommandoen viser en beholders logfiler inde i din terminal. Det
--følge efter
Flag opretter en kontinuerlig strøm, så du kan se logfiler i realtid.
Rengøring af ressourcer
Gamle beholdere og billeder kan hurtigt bunke op på dit system. Brug
docker rm min beholder
at slette en beholder med sit id eller navn.
Kommandoen for billeder er
Docker RMI My-Image: Seneste
. Pass billedets ID eller Full TAG navn. Hvis du angiver et tag, slettes billedet ikke, før det ikke har flere tags tildelt. Ellers vil det givne tag blive fjernet, men billedets andre tags vil forblive anvendelige.
Bulk Clean-ups er mulige ved hjælp af
Docker Prune.
kommando
. Dette giver dig en nem måde at fjerne alle stoppede beholdere og overflødige billeder.
Grafisk styring
Hvis terminalen ikke er din ting, kan du bruge tredjeparts værktøjer til Opsæt en grafisk grænseflade til Docker . Web Dashboards giver dig mulighed for hurtigt at overvåge og administrere din installation. De hjælper også dig med at tage fjernbetjening af dine containere.
Vedvarende datalagring
Dockerbeholdere er effemeral som standard. Ændringer foretaget på en containerens filsystem vil ikke fortsætte efter at beholderen stopper. Det er ikke sikkert at
Kør enhver form for filopbevaringssystem
I en beholder startet med en grundlæggende
Docker Run.
kommando.
Der er et par forskellige tilgange til styring af vedvarende data . Den mest almindelige er at bruge et dockervolumen. Volumener er opbevaringsenheder der er monteret i containerfilsystemer. Eventuelle data i et volumen vil forblive intakt, efter at det linkede container stopper, så du kan forbinde en anden beholder i fremtiden.
Opretholdelse af sikkerhed
Dockerized arbejdsbyrde kan være mere sikre end deres bare metal modstykker, da Docker giver en vis adskillelse mellem operativsystemet og dine tjenester. Ikke desto mindre er Docker et potentielt sikkerhedsproblem, som det
normalt løber så
rod
og kunne udnyttes til at køre ondsindet software.
Hvis du kun kører Docker som et udviklingsværktøj, er standardinstallationen generelt sikker at bruge. Produktionsservere og maskiner med en netværksundsket dæmonstik skal hærdes, før du går live.
Audit din dockerinstallation at identificere potentielle sikkerhedsspørgsmål. Der er automatiserede værktøjer til rådighed der kan hjælpe dig med at finde svagheder og foreslå beslutninger. Du kan også Scan individuelle containerbilleder for problemer, der kunne udnyttes indefra.
Arbejder med flere containere
Det
Docker.
Kommando fungerer kun med en beholder ad gangen. Du vil ofte bruge containere i aggregat.
Docker Compose.
er et værktøj, der lader dig definere dine beholdere erklærende i en YAML-fil. Du kan starte dem helt op med en enkelt kommando.
Dette er nyttigt, når dit projekt afhænger af andre tjenester, som f.eks. En web backend, der er afhængig af en databaseserver. Du kan definere begge containere i din
docker-compose.yml.
og drage fordel af strømlinet ledelse med
Automatisk netværk
.
Her er en simpel
docker-compose.yml.
fil:
Version: "3"
Tjenester:
App:
Billede: App-server: Seneste
porte:
- 8000: 80
Database:
Billede: Database-server: Seneste
Volumener:
- Database-data: / Data
Volumener:
Database-data:
Dette definerer to containere (
App.
og
Database.
). Et volumen er oprettet for databasen. Dette bliver monteret på
/data
i beholderen. App Server's Port 80 er udsat for 8000 på værten. Løb
Docker-Compose UP -D
at spinde begge tjenester, herunder netværk og volumen.
Brugen af Docker Compose giver dig mulighed for
Skriv genanvendelig
Containerdefinitioner, som du kan dele med andre. Du kunne begå en
docker-compose.yml.
ind i din versionskontrol i stedet for at have udviklere husker
Docker Run.
kommandoer.
Der er også andre tilgange til at køre flere containere. Docker app er en fremvoksende løsning, der giver et andet niveau af abstraktion. Andetsteds i økosystemet, Podman er et Docker-alternativ Det lader dig oprette "pods" af beholdere i din terminal.
Beholderorkestration.
Docker løber normalt ikke som-er i produktion. Det er nu mere almindeligt at bruge en orkestreringsplatform som f.eks Kubernetes. eller docker swarm mode. Disse værktøjer er designet til at håndtere Flere container replikaer, som forbedrer skalerbarhed og pålidelighed.
Docker er kun en komponent i den bredere containeriseringsbevægelse. Orkesterdyr
Udnyt det samme
Container runtime teknologier for at give et miljø, der er en bedre pasform til produktion. Brug af flere container-forekomster
giver mulighed for rullende opdateringer
Samt distribution på tværs af maskiner, hvilket gør din implementering mere modstandsdygtig til at ændre og udslip. Den regelmæssige
Docker.
CLI målretter en vært og arbejder med individuelle beholdere.
En stærk platform for containere
Docker giver dig alt, hvad du behøver for at arbejde med containere. Det er blevet et centralt værktøj til softwareudvikling og systemadministration. De vigtigste fordele er øget isolation og bærbarhed for individuelle tjenester.
At blive bekendt med Docker kræver en forståelse af de grundlæggende container- og billedkoncepter. Du kan anvende disse for at oprette dine specialiserede billeder og miljøer, der beholder dine arbejdsbelastninger.