Sådan fungerer Docker · Mindmaps

Sådan fungerer Docker. Et redigerbart mindmap med farvede grene, underemner og forbindelser. Buede linjer viser sammenhænge; pile bruges, når retningen har betydning.

Docker pakker et program og alt, hvad det skal bruge, ind i et image og kører det så som en container, en isoleret proces, der opfører sig ens på enhver maskine med en Docker-motor.

Sådan fungerer Docker · Mindmaps

The interactive MindMap canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

Sådan læser du mindmappet

  • Begynd ved emnet i midten, og følg en farvet gren til de tilhørende idéer.
  • Buede linjer viser sammenhænge; pile bruges, når retningen har betydning.

Describe & build

Denne gren samler “The Dockerfile is a recipe: base image, dependencies, files to copy, the command to run. It makes the build reproducible — the same file produces the same image everywhere.”, “docker build packages the app and its dependencies”.

Image

Denne gren samler “An image is the packaging artifact: everything the app needs to run, frozen in read-only layers. It never changes once built.”, “Image is pushed to a registry, or pulled from one”.

Container

Denne gren samler “docker run starts a container from the image”, “Namespaces isolate what the process can see (its own file system, network, processes); cgroups limit what it can use (CPU, memory). This is how many containers run on one host without fighting.”.

Host kernel

Denne gren samler “Container shares the host kernel but has its own file system”.

Portable app

Denne gren samler “Because the container carries its own runtime, libraries and configuration, “works on my machine” stops being a real failure mode.”.

Forbindelser på tværs

Et image er et skrivebeskyttet snapshot; en container er en kørende instans af det.

Containere deler værtens kerne og foregøgler isolation med namespaces: derfor starter de på sekunder, hvor virtuelle maskiner tager minutter.

Cgroups begrænser, hvad en container kan forbruge, så én støjende nabo ikke kan udsulte værten.

Imagets uforanderlighed er det, der gør »kører ens overalt« sandt.

Docker leverer pakningen og runtimen; orkestratorer som Kubernetes styrer mange containere på tværs af værter.

Key relationships and takeaways

  • Et image er et skrivebeskyttet snapshot; en container er en kørende instans af det.
  • Containere deler værtens kerne og foregøgler isolation med namespaces: derfor starter de på sekunder, hvor virtuelle maskiner tager minutter.
  • Cgroups begrænser, hvad en container kan forbruge, så én støjende nabo ikke kan udsulte værten.
  • Imagets uforanderlighed er det, der gør »kører ens overalt« sandt.
  • Docker leverer pakningen og runtimen; orkestratorer som Kubernetes styrer mange containere på tværs af værter.

When to use this visual

  • At forklare en udvikler, hvorfor Docker virker, og hvordan en container adskiller sig fra en virtuel maskine.
  • At introducere et team til byg-distribuér-kør-modellen, før de skriver deres første Dockerfile.
  • At forankre en samtale om miljødrift: hvorfor »det virker på min maskine« holder op med at gælde.

Sådan fungerer det

  1. Tilpas emnet i midten

    Giv emnet et navn, der passer til dit projekt eller din undervisning.

  2. Udbyg grenene

    Rediger idéerne, og tilføj eksempler eller noter.

  3. Forbind beslægtede idéer

    Tegn forbindelser på tværs af grene; brug kun pile, når retningen betyder noget.

Ofte stillede spørgsmål

Hvad er forskellen på en container og en virtuel maskine?

En virtuel maskine virtualiserer hardwaren: den bærer et helt operativsystem, og en hypervisor formidler alt, hvilket gør den tung og langsom at starte. En container virtualiserer operativsystemet: den deler værtens kerne og bruger namespaces til isolation og cgroups til ressourcegrænser. Derfor starter containere på sekunder og er langt lettere: prisen er, at alle containere på en vært deler den værts kerne.

Hvad er et image over for en container?

Et image er det statiske artefakt: et skrivebeskyttet snapshot af programmet og dets afhængigheder, bygget ud fra Dockerfilen. En container er det image i bevægelse: en kørende proces med et skrivbart lag ovenpå. Du bygger et image én gang og kan starte tusindvis af containere ud fra det, hver isoleret fra de andre.

Hvordan isolerer Docker containere?

Med to funktioner i Linux-kernen. Namespaces giver hver container sit eget syn på systemet: sit eget filsystem, sin egen netværksstak, sin egen procestabel og sine egne bruger-id'er, så den fremstår som sin egen maskine. Cgroups (control groups) begrænser og måler ressourcer og sætter loft over, hvor meget CPU, hukommelse og I/O en container kan forbruge, så én container ikke kan tage naboerne med i faldet.

Hvorfor gør Docker programmer portable?

Fordi imaget samler programmet med dets runtime, biblioteker og konfiguration: alt undtagen kernen. Hvor der findes en Docker-motor, kører imaget på samme måde, så afstanden mellem en udviklers laptop, en CI-runner og en produktionsserver skrumper ind til den konfiguration, der bevidst holdes uden for imaget.

Rediger dette mindmap i QueryChart

Åbn mindmappet på et redigerbart lærred. Flyt idéer, tilføj grene, og tegn forbindelser.

Rediger dette mindmap i QueryChart

Mere i Mindmaps