Docker-veiledning for nybegynnere: Grunnleggende, Architecture, Containere
โก Smart oppsummering
Docker er en containerplattform som pakker applikasjoner og deres avhengigheter inn i bรฆrbare, lette containere. Denne oversikten forklarer Docker-arkitektur, installasjon pรฅ Ubuntu, viktige kommandoer og hvordan containere skiller seg fra tradisjonelle virtuelle maskiner for raskere programvarelevering.

Docker er en av de mest populรฆre containeriseringsplattformene som brukes i moderne DevOps og skybaserte arbeidsflyter. Denne Docker-opplรฆringen for nybegynnere forklarer hva Docker er, hvordan Docker-arkitekturen fungerer, hvordan man installerer Docker pรฅ Ubuntu, og de grunnleggende kommandoene som brukes til รฅ administrere bilder og containere.
Hva er Docker?
Docker er en programvareutviklingsplattform for virtualisering som lar flere operativsystemer kjรธre pรฅ samme vert. Den hjelper deg med รฅ skille infrastruktur fra applikasjoner slik at du kan levere programvare raskt. I motsetning til hypervisorer, som brukes til รฅ lage virtuelle maskiner (VM-er), utfรธrer Docker virtualisering pรฅ systemnivรฅ ved hjelp av enheter kalt Docker-containere.
Docker-containere kjรธrer oppรฅ vertsoperativsystemet, som vist pรฅ bildet nedenfor. Dette forbedrer bรฅde effektivitet og sikkerhet. Du kan ogsรฅ kjรธre flere containere enn virtuelle maskiner pรฅ samme infrastruktur, fordi containere bruker fรฆrre ressurser.

I motsetning til virtuelle maskiner, som kan kommunisere direkte med vertsmaskinvaren (for eksempel en Ethernet-adapter som oppretter flere virtuelle adaptere), kjรธrer Docker-containere i et isolert miljรธ oppรฅ verts-OS-et. Selv om verten din kjรธrer Windows, du kan kjรธre Linux bilder inni beholdere ved hjelp av Hyper-V, som automatisk oppretter en liten virtuell maskin for รฅ virtualisere basisavbildningen.
Nรฅ som du vet hva Docker er, la oss se pรฅ hovedgrunnene til at team velger det.
Hvorfor bruke Docker?
Her er de viktigste grunnene til รฅ bruke Docker:
- Docker er programvare som brukes til virtualisering, som tillater flere operativsystemer รฅ kjรธre pรฅ samme vert.
- Docker er en klient-server-applikasjon, som betyr at klienter kommuniserer med en server.
- Docker-bilder fungerer som ยซkildekodeยป for containere; du bruker dem til รฅ bygge.
- Docker stรธtter to typer registre: offentlige og private.
- Containere er organisasjonsenhetene i Docker. Enkelt sagt er et image en mal og en container er en kopi av den malen, slik at du kan kjรธre flere containere fra samme image.
Disse fordelene kommer fra mรฅten Docker er designet pรฅ. Fรธlgende avsnitt gรฅr gjennom Docker-arkitekturen og dens kjernekomponenter.
Docker Architecture
I denne Docker-containeropplรฆringen skal vi nรฅ se pรฅ hovedkomponentene i Docker-arkitekturen.
Docker-motor
Docker er en klient-server-applikasjon, som betyr at vi har klienter som videresender forespรธrsler til en server. Docker-daemonen, kalt dockerd, er Docker-motoren som representerer serveren. Daemonen og klientene kan kjรธre pรฅ samme eller en ekstern vert, og de kommuniserer via en kommandolinjeklientbinรฆrfil og en fullstendig RESTful API som samhandler med dockerd.
Docker-bilder
Docker-bilder er ยซkildekodenยป for containerne vรฅre. Vi bruker dem til รฅ bygge containere. Bilder kan ha forhรฅndsinstallert programvare, noe som fremskynder utrullingen. De er bรฆrbare, og du kan bruke eksisterende bilder eller bygge dine egne.
Docker-registre
Docker lagrer bildene vi bygger i registre. Det finnes offentlige og private registre. Docker har et offentlig register som heter Docker hub, hvor du ogsรฅ kan lagre bilder privat. Docker Hub har millioner av bilder du kan begynne รฅ bruke med en gang.
Dockerbeholdere
Containere er de organisatoriske enhetene i Docker og et av dets grunnleggende konsepter. Nรฅr vi bygger et image og kjรธrer det, kjรธrer vi det inne i en container. Containeranalogien brukes pรฅ grunn av portabiliteten til programvaren som kjรธrer inni den: du kan flytte, "sende", endre, administrere, opprette eller รธdelegge det, akkurat som lasteskip hรฅndterer 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.
Samspillet mellom disse ulike komponentene viser hvordan Docker-containerteknologi fungerer sammen. Kommandoer som docker pull og docker run, som vi dekker senere, lar deg administrere denne arbeidsflyten.
Med arkitekturen i tankene, la oss installere Docker slik at du kan prรธve disse komponentene selv.
Hvordan installere Docker pรฅ Linux/Ubuntu
Nedenfor finner du en trinnvis Docker-installasjonsprosess pรฅ Linux/Ubuntu:
Trinn 1) For รฅ installere Docker trenger du Docker-teamets DEB-pakker. Fรธrst noen forutsetninger Ubuntu Pakker er nรธdvendige. Bruk kommandoen nedenfor for รฅ installere dem.
$ 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 ved รฅ bruke kommandoen nedenfor.
$ 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 at GPG-nรธkkelen automatisk skal legges til pรฅ verten din. Kommandoen lsb_release skal fylle ut Ubuntu distribusjonsversjon av verten din.
Trinn 4) Etter at du har lagt til GPG-nรธkkelen, oppdaterer du APT-kildene ved hjelp av Docker-kommandoen nedenfor.
$ sudo apt-get update
Du 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.
NOTAT: Docker for Windows Krever Windows 10 Pro eller Enterprise versjon 14393, eller Windows Server 2016 RTM, for รฅ kjรธre.
Slik bruker du Docker ved รฅ bruke grunnleggende Docker-kommandoer
Slik bruker du Docker med noen fรฅ grunnleggende Docker-kommandoer.
Den mest grunnleggende kommandoen du bรธr kjรธre etter at du har installert Docker er docker info, som nevnt tidligere.
$ sudo docker info
Du bรธr fรฅ et resultat som ligner pรฅ det fรธlgende.
Som vist i Docker-eksemplet ovenfor, kan vi se informasjon om Docker-containere: hvor mange som kjรธrer, er satt pรฅ pause eller stoppet, og hvor mange bilder som er lastet ned. La oss nรฅ fรฅ vรฅrt fรธrste bilde.
$ sudo docker pull alpine
Med denne kommandoen ber vi Docker laste ned alpine-avbildningen, og hente den fra det offentlige registeret i 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 container, bruker vi fรธlgende kommando.
$ sudo docker run -i -t alpine /bin/bash
ร kjรธre kommandoen sender oss direkte til Alpine-terminalen. -i-flagget holder STDIN รฅpen fra containeren selv nรฅr du ikke er koblet til den; denne vedvarende standardinndataen er den ene halvdelen av det du trenger for et interaktivt skall. -t-flagget er den andre halvdelen og instruerer Docker til รฅ tilordne en pseudo-tty til containeren. Sammen gir de oss et interaktivt skall i den nye containeren. Vi avslutter containeren med en enkel exit-kommando.
Nรฅ, i denne grunnleggende Docker-veiledningen, kan vi prรธve รฅ kjรธre en Ubuntu bilde.
$ sudo docker run -it ubuntu /bin/bash
Legg merke til at Docker sjekker etter bildet lokalt, og hvis det ikke er der, hentes bildet automatisk fra bildebiblioteket. Igjen har vi et interaktivt skall som kjรธrer. Vi kan ogsรฅ navngi containere mens vi kjรธrer dem.
$ sudo docker run โ-name our_container -it ubuntu /bin/bash
Sรฅ avslutter vi igjen. Vi kan ogsรฅ kjรธre en container vi opprettet tidligere uten et interaktivt skall.
$ sudo docker start container_name
Og vi stopper containeren ved รฅ skrive docker stop container_name.
$ sudo docker stop container_name
Hvis vi vil se alle containere som kjรธrer, kjรธrer vi ganske enkelt fรธlgende.
$ docker ps
For alle containere legger vi til ยซ-aยป pรฅ slutten av samme kommando, som docker ps -a. Denne kommandoen viser container-ID-en, hvilket bilde den bruker, nรฅr den ble opprettet, kjรธrestatus, eksponerte porter og et tilfeldig generert navn for enklere administrasjon.
Nรฅr vi kjรธrer containere, รธnsker vi ofte รฅ vite hvor mange ressurser de bruker. Til det formรฅlet kan vi bruke fรธlgende kommando.
$ docker stats
Du kan ogsรฅ se hvilke bilder du har lastet ned lokalt, sammen med informasjon om dem.
$ sudo docker images
Kommandoen i Docker-eksemplet ovenfor viser hvert Docker-bilde med en tagg som viser bildeversjonen, en sรฆregen bilde-ID, opprettelsesdatoen og bildestรธrrelsen.
For รฅ forstรฅ hvorfor containere er en slik forbedring, er det nyttig รฅ se pรฅ hvordan virtualisering utviklet seg.
Hva er virtualisering?
Tidligere var det tregt og smertefullt รฅ distribuere en tjeneste. Utviklere skrev kode, og deretter distribuerte driftsteamet den pรฅ bare-metal-maskiner, hvor de mรฅtte passe pรฅ bibliotekversjoner, oppdateringer og sprรฅkkompilatorer slik at koden skulle fungere. Hvis det var feil eller feil, startet prosessen pรฅ nytt: utviklerne fikset problemet, og driftsteamet distribuerte den pรฅ nytt.
Ting ble bedre med opprettelsen av hypervisorer. Hypervisorer kjรธrer flere virtuelle maskiner, eller virtuelle maskiner, pรฅ samme vert, som kan kjรธre eller vรฆre slรฅtt av. Virtuelle maskiner reduserte ventetiden for utrulling av kode og feilretting betraktelig, men den virkelige banebrytende var Docker-containere.
Dockers popularitet er ogsรฅ drevet av orkestreringsverktรธy som administrerer containere i stor skala, for eksempel KubernetesFรธr vi gรฅr videre, er her en rask oversikt over de viktigste Docker-kommandoene.
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รฅ disse Docker jobbintervju spรธrsmรฅl og svar for sรฅ vel nyutdannede som erfarne fagfolk.

