Docker-veiledning for nybegynnere: Grunnleggende, Architecture, Containere
Hva er Docker?
Docker er en programvareutviklingsplattform for virtualisering med flere Operating som kjรธrer pรฅ samme vert. Det hjelper รฅ skille infrastruktur og applikasjoner for รฅ levere programvare raskt. I motsetning til Hypervisors, som brukes til รฅ lage VM (virtuelle maskiner), utfรธres virtualisering i Docker pรฅ systemnivรฅ, ogsรฅ kalt Docker-containere.
Som du kan se forskjellen pรฅ bildet nedenfor, kjรธrer Docker-containere pรฅ toppen av vertens Operasjonssystem. Dette hjelper deg med รฅ forbedre effektiviteten og sikkerheten. Dessuten kan vi kjรธre flere containere pรฅ samme infrastruktur enn vi kan kjรธre virtuelle maskiner fordi containere bruker fรฆrre ressurser.

I motsetning til VM-ene som kan kommunisere med maskinvaren til verten (f.eks. Ethernet-adapter for รฅ lage flere virtuelle adaptere), kjรธrer Docker-beholdere i et isolert miljรธ pรฅ toppen av vertens OS. Selv om verten din kjรธrer Windows OS, kan du ha Linux-bilder som kjรธrer i containere ved hjelp av Hyper-V, som automatisk oppretter en liten VM for รฅ virtualisere systemets basisbilde, i dette tilfellet, Linux.
Hvorfor bruke Docker?
- Docker er dataprogramvare som brukes for virtualisering for รฅ ha flere Operating systemer kjรธrer pรฅ samme vert
- Docker er klient-server-typen applikasjon som betyr at vi har klienter som videresender til serveren
- Docker-bilder er "kildekoden" for vรฅre containere; vi bruker dem til รฅ bygge
- Dockerfile har to typer registre 1.) offentlige og 2) private registre
- Containere er organisasjonsenhetene til Docker-volumet. Enkelt sagt er et bilde en mal, og en beholder er en kopi av den malen. Du kan ha flere beholdere (kopier) av det samme bildet.
Docker Architecture
La oss nรฅ i denne Docker-beholderopplรฆringen snakke om Docker-hovedkomponentene i Docker Archilรฆre:

Docker-motor
Docker er klient-server-typen applikasjon som betyr at vi har klienter som videresender til serveren. Sรฅ Docker-demonen kalt: dockerd er Docker-motoren som representerer serveren. Docker-demonen og klientene kan kjรธres pรฅ samme eller ekstern vert, og de kommuniserer gjennom kommandolinjeklientbinรฆr, sรฅ vel som en fullstendig RESTful API รฅ samhandle med demonen: dockerd.
Docker-bilder
Docker-bilder er "kildekoden" for vรฅre containere; vi bruker dem til รฅ bygge containere. De kan ha programvare forhรฅndsinstallert som gjรธr distribusjonen raskere. De er bรฆrbare, og vi kan bruke eksisterende bilder eller bygge vรฅre egne.
Docker-registre
Docker lagrer bildene vi bygger i registre. Det er offentlige og private registre. Docker-selskapet har offentlig register kalt Docker-hub, hvor du ogsรฅ kan lagre bilder privat. Docker-huben har millioner av bilder, som du kan begynne รฅ bruke nรฅ.
Dockerbeholdere
Containere er organisasjonsenhetene og en av Docker grunnleggende konsepter. Nรฅr vi bygger et bilde og begynner รฅ kjรธre det; vi kjรธrer i en container. Beholderanalogien brukes pรฅ grunn av portabiliteten til programvaren vi kjรธrer i beholderen vรฅr. Vi kan flytte den, med andre ord, "sende" programvaren, modifisere, administrere, lage eller kvitte seg med den, รธdelegge den, akkurat som lasteskip kan gjรธre med ekte containere.
Enkelt sagt er et bilde en mal, og en beholder er en kopi av den malen. Du kan ha flere beholdere (kopier) av det samme bildet.
Nedenfor har vi et bilde som perfekt representerer interaksjonen mellom de forskjellige komponentene og hvordan Docker containerteknologi fungerer.
Det vi har flere dockers kommandoer docker pull, docker run .. vi vil snakke mer om det senere.
Hvordan installere Docker pรฅ Linux/Ubuntu
Nedenfor er en trinnvis installasjonsprosess for Docker pรฅ Linux/Ubuntu:
Trinn 1) For รฅ installere Docker mรฅ vi bruke Docker-teamets DEB-pakker.
For det, noen forutsetning Ubuntu pakker kreves.
Bruk kommandoen nedenfor for รฅ installere Ubuntu pakker
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*tegnet "\" er ikke nรธdvendig det brukes for den nye linjen, hvis du vil kan du skrive kommandoen uten รฅ bruke "\" kun pรฅ รฉn linje.
Trinn 2) Legg til den offisielle Docker GPG-nรธkkelen med fingeravtrykket.
Bruk Docker-kommandoen nedenfor for รฅ angi GPG-nรธkkelen
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Trinn 3) Deretter legger du til Docker APT-depotet.
Bruk Docker-kommandoen nedenfor for รฅ legge til depotet
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Du kan bli bedt om รฅ bekrefte at du รธnsker รฅ legge til depotet og fรฅ GPG-nรธkkelen automatisk lagt til verten din.
Kommandoen lsb_release skal fylle ut Ubuntu distribusjonsversjon av verten din.
Trinn 4) Etter รฅ ha lagt til GPG-nรธkkelen,
Oppdater APT-kilder ved รฅ bruke Docker-kommandoen nedenfor
$ sudo apt-get update
Vi kan nรฅ installere selve Docker-pakken.
Trinn 5) Nรฅr APT-kildene er oppdatert,
Begynn รฅ installere Docker-pakkene pรฅ Ubuntu ved รฅ bruke Docker-kommandoen nedenfor
$ 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 mellom Docker 1.8 og 1.13 var pakkenavnet docker-engine.
MERKNADER: Docker for Windows Krever Windows 10 Pro eller Enterprise versjon 14393, eller Windows server 2016 RTM รฅ kjรธre
Slik bruker du Docker ved รฅ bruke grunnleggende Docker-kommandoer
Slik bruker du Docker ved รฅ bruke grunnleggende Docker-kommandoer:
Den mest grunnleggende kommandoen vi mรฅ kjรธre etter installasjon av Docker er $ docker info som vi sa tidligere.
$ sudo docker info
Du bรธr fรฅ det samme eller fรธlgende resultatet
Som vi kan se i Docker-eksemplet ovenfor, har vi informasjon om docker-containere hvor mange som kjรธrer, stoppet eller stoppet og hvor mange bilder vi har lastet ned. Sรฅ la oss fรฅ vรฅrt fรธrste bilde i denne Docker-kommandoopplรฆringen.
$ sudo docker pull alpine
Med denne kommandoen ber vi docker laste ned bildet alpine, for รฅ hente det fra det offentlige registeret, den nyeste versjonen som er satt som standard.
*alpine er et minimalt Docker-bilde basert pรฅ Alpine Linux med en komplett pakkeindeks og kun 5 MB i stรธrrelse.
Hvis vi vil kjรธre bildet som en beholder, vil vi bruke fรธlgende kommando i denne Docker-veiledningen.
$ sudo docker run -i -t alpine /bin/bash
Hvis vi kjรธrer kommandoen, blir vi sendt direkte til alpinens terminal. -i-flagget holder STDIN รฅpen fra beholderen, selv nรฅr du ikke er festet til den. Denne vedvarende standardinngangen er halvparten av det du trenger for et interaktivt skall. -t-flagget er den andre halvdelen og som instruerer Docker om รฅ tilordne en pseudo-tty til beholderen. Dette gir oss et interaktivt skall i den nye beholderen. Vi gรฅr ut av beholderen med en enkel exit-kommando.
Nรฅ i denne Docker grunnleggende opplรฆringen kan vi prรธve รฅ kjรธre en Ubuntu bilde.
$ sudo docker run -it ubuntu /bin/bash
Du kan legge merke til docker-sjekker for bildet lokalt, og hvis det ikke er der, trekkes bildet automatisk fra bildebiblioteket, og igjen har vi et interaktivt skall i gang. Vi kan ogsรฅ navngi containerne mens vi kjรธrer dem.
$ sudo docker run โ-name our_container -it ubuntu /bin/bash
og vi gรฅr ut igjen.
Vi kan ogsรฅ kjรธre container vi tidligere opprettet, uten et interaktivt skall.
$ sudo docker start container_name
Og stopp containerskrivingen docker stop container_name
$ sudo docker stop container_name
Hvis vi vil se alle kjรธrende containere, er det bare รฅ kjรธre
$ docker ps
Og for alle containere legger vi til "- a" pรฅ slutten av den samme kommandoen, som denne docker ps -a.
Denne kommandoen viser containerens ID, hvilket bilde som ble brukt nรฅr det ble opprettet, kjรธrestatus, eksponerte porter og tilfeldig generert navn for containeren for enklere administrasjon.
Nรฅr vi kjรธrer containere vil vi ogsรฅ gjerne vite hvor mye ressurser de bruker, til det formรฅlet kan vi bruke kommandoen.
$ docker stats
Du kan ogsรฅ se hvilke bilder vi har lastet ned lokalt og info om dem.
$ sudo docker images
Kommandoen i Docker-eksemplet ovenfor viser docker-bildet med en tag som viser vรฅr bildeversjon, en sรฆregen bilde-ID, nรฅr ble opprettet og bildestรธrrelse.
Hva er virtualisering?
Tidligere var prosessen for รฅ distribuere en tjeneste treg og smertefull. Fรธrst skrev utviklerne kode; sรฅ ville driftsteamet distribuere det pรฅ bare metall-maskiner, hvor de mรฅtte se etter bibliotekversjoner, patcher og sprรฅkkompilatorer for at koden skulle fungere. Hvis det var noen feil eller feil, ville prosessen starte pรฅ nytt, utviklerne ville fikse det, og sรฅ igjen var driftsteamet der for รฅ distribuere.
Det var en forbedring med etableringen av Hypervisors. Hypervisorer har flere Virtuelle maskiner eller VM-er pรฅ samme vert, som kan kjรธre eller slรฅs av. VM-er reduserte ventetiden for distribusjon av kode og feilretting pรฅ en stor mรฅte, men den virkelige spillveksleren var Docker-containere.
Viktige Docker-kommandoer
Nedenfor er de viktige Docker-kommandoene:
| Kommando | Tekniske beskrivelser |
|---|---|
| docker info | Informasjonskommando |
| docker pull | Last ned et bilde |
| docker run -i -t bildenavn /bin/bash | Kjรธr bildet som en beholder |
| docker start our_container | Start beholderen |
| docker stop container_name | Stopp beholderen |
| docker ps | Liste over alle kjรธrende containere |
| docker-statistikk | Beholderinformasjon |
| docker bilder | Liste over bilder som er lastet ned |
| Docker Cleanup | Drep alle kjรธrende containere. |
Les ogsรฅ Docker jobbintervju spรธrsmรฅl og svar for ferskere sรฅ vel som erfarne fagfolk.
Sammendrag
- Docker er en programvareutviklingsplattform for virtualisering med flere Operating som kjรธrer pรฅ samme vert. Det hjelper รฅ skille infrastruktur og applikasjoner for รฅ levere programvare raskt.
- Docker Archilรฆre: Docker Engine, Docker Images, Docker Registries, Docker Containers.
- Docker Engine: Docker er klient-server-typen applikasjon som betyr at vi har klienter som videresender til serveren. Sรฅ Docker-demonen kalt: dockerd er Docker-motoren som representerer serveren.
- Docker-bilder: Docker-bilder er "kildekoden" for vรฅre containere; vi bruker dem til รฅ bygge containere. De kan ha programvare forhรฅndsinstallert som gjรธr distribusjonen raskere. De er bรฆrbare, og vi kan bruke eksisterende bilder eller bygge vรฅre egne.
- Docker-registre: Docker lagrer bildene vi bygger i registre. Det er offentlige og private registre. Docker-selskapet har et offentlig register kalt Docker-hub, hvor du ogsรฅ kan lagre bilder privat. Docker-huben har millioner av bilder, som du kan begynne รฅ bruke nรฅ.
- Docker-containere: Containere er organisasjonsenhetene og en av Docker grunnleggende konsepter. Nรฅr vi bygger et bilde og begynner รฅ kjรธre det; vi kjรธrer i en container. Beholderanalogien brukes pรฅ grunn av portabiliteten til programvaren vi kjรธrer i beholderen vรฅr.

