Docker Container
TL;DR
En Docker-container är ett enkelt sätt att paketera en app med allt den behöver så att den fungerar likadant överallt.
Vad är en Docker-container?
En Docker-container är ett litet, lättviktigt paket som innehåller:
- appkoden
- verktygen den behöver
- bibliotek
- inställningar
Eftersom allt är samlat tillsammans fungerar appen på samma sätt på vilken dator som helst.
Containrar skiljer sig från virtuella maskiner eftersom de inte har sitt eget operativsystem. De använder serverns huvudsakliga OS men är separerade från andra appar.
Här är ett enkelt sätt att föreställa sig det:
- Virtuell Maskin: Ett fullt hus med egen elektricitet och VVS.
- Docker-container: Det är som en lägenhet i en byggnad, ditt eget utrymme, men du delar saker som vatten och elektricitet.
Varför Docker-containrar är användbara
Många buggar uppstår när appar körs i olika miljöer, som utveckling, staging eller produktion. Docker hjälper genom att göra allt konsekvent.
Huvudfördelar:
- Konsekvens Om din app fungerar på din laptop, kommer den också att fungera i produktion.
- Isolering Om en container slutar fungera, fortsätter de andra att köra.
- Portabilitet Du kan bygga din app på en Mac och köra den på Linux eller i molnet utan att göra några ändringar.
- Effektivitet Containrar startar snabbt och använder mindre minne än virtuella maskiner.
Hur Docker-containrar fungerar
Docker använder en huvudtjänst kallad Docker Engine för att bygga och köra containrar.
1. Docker Image
En bild är en mall. Den har instruktionerna och filerna som behövs för att köra en app.
2. Docker Registry
Bilder lagras på platser som Docker Hub. Du kan ladda ner (dra) bilder eller ladda upp (trycka) dina egna.
3. Köra en Container
När du kör en bild blir den en container. Denna container använder delade lager, vilket hjälper till att hålla den liten och snabb.
Docker Container vs Virtuell Maskin
| Operativsystem | Delar värd-OS | Har eget OS |
|---|---|---|
| Storlek | Liten (MB) | Stor (GB) |
| Starttid | Sekunder | Minuter |
| Resursanvändning | Låg | Hög |
Enkelt Exempel
Föreställ dig att du vill distribuera en Python-webbapp.
Utan Docker: Du måste installera Python, Flask och andra verktyg på varje server. Olika serverinställningar kan orsaka buggar.
Med Docker:
- Skriv en Dockerfile
- Bygg bilden
- Kör containern
Appen kommer att köras på samma sätt överallt.
Vem Använder Docker Containers?
- Utvecklare: För att undvika installationsproblem på lokala maskiner
- DevOps-team: För att automatisera distribution och skalning
- Säkerhetsteam: För att isolera appar och skanna bilder innan release
Bästa Praxis
-
En app per container
Se till att varje container är enkel och fokuserad.
-
Använd betrodda bilder
När du kan, börja med officiella bilder.
-
Håll bilder små
Mindre bilder körs snabbare och är vanligtvis säkrare.
-
Skanna efter säkerhetsproblem.
Kontrollera dina bilder för kända säkerhetsproblem
Relaterade Termer
- Kubernetes
- Container orkestrering
- Mikrotjänster
- CI/CD-pipeline
- CI/CD-säkerhet
FAQ
Är Docker samma som en virtuell maskin?
Nej. Containers delar operativsystemet. Virtuella maskiner gör det inte.
Var kan Docker-containrar köras?
På bärbara datorer, servrar eller hos någon större molnleverantör.
Är Docker-containrar säkra?
De tillför isolering, men säkerheten beror på hur bilder byggs och skannas.
Vad är skillnaden mellan en bild och en container?
En bild är en mall. En container är en körande app skapad från den mallen.