Master Docker grundlæggende med disse vigtige begreber forklaret i enkle ord.
Mastering Docker er en efterspurgt færdighed for backend-softwareingeniører. Docker hjælper dig med at bygge, pakke og distribuere applikationer.
Dockeriserede applikationer kan køre i forskellige miljøer. Dette reducerer nedetiden for applikationer, hvilket giver virksomheder en konkurrencefordel. Men Docker kan være skræmmende, når du begynder at lære det. Her er vigtige emner for at lære at mestre Docker.
Hvad er Docker?
Docker er en software, der bruges til at pakke applikationer i eksekverbare enheder kaldet containere. Docker giver support til hurtigt at bygge, teste og implementere applikationer.
Når du bruger Docker, interagerer du med Docker Engine. Du kan installere Docker Engine på ethvert operativsystem, inklusive Windows 10 og 11, macOS, eller Ubuntu/Linux systemer. Der er mange værktøjer og koncepter, du skal bruge for at lære at bruge Docker effektivt. Her er de vigtigste for at komme i gang.
1. Docker billede
Et Docker-billede er en let plan, der bruges til at skabe containere. Det er en skabelon med instruktioner, der specificerer operativsystemet, applikationskoden og afhængigheder. Du definerer instruktioner om, hvordan man bygger billedet på en Dockerfile.
I filen angiver du alt, hvad din ansøgning har brug for. Docker opbygger derefter billedet automatisk baseret på instruktionerne. Du kan finde forskellige billeder på Dockers online-registrering, Docker Hub. Docker anbefaler at bruge de officielle billeder af sikkerhedsmæssige årsager.
Du kan også bygge billeder baseret på tilpassede konfigurationer. Billeder kommer i forskellige størrelser, operativsystemer og sprog. Du kan vælge den, der passer bedst til din ansøgning. For eksempel kan du lære hvordan man bygger et Docker-billede af en .NET web-API.
2. Docker container
Containere er enheder, der bruges til at pakke en applikation til en eksekverbar enhed. Containere inkluderer alt det nødvendige for at køre en applikation, inklusive biblioteker, kode, afhængigheder og runtime.
Containere isolerer applikationer i enheder, så de kan køre konsekvent på tværs af forskellige miljøer. Containere giver dig mulighed for at administrere applikationer i udviklings- og produktionsmiljøer uden at støde på fejl. Der er mange use cases til containere som du kan udforske.
Docker-containere har detaljer som container-id, billede og basisoperativsystem. Du kan også se kørselstid, status og navn på containeren. Brug følgende kommando for at få vist alle containere i dit system:
docker container ls
Du vil se detaljer om alle kørende containere:
Du kan også bruge docker ps for at se alle kørende containere. Og docker container inspicer [container ID] for at se indholdet af en beholder.
4. Dockerfil
En Dockerfile er et dokument, der specificerer instruktioner om, hvordan Docker-billedet opbygges. Filen specificerer basisbilledet, applikationskoden og de filer, der er nødvendige for at oprette billedet.
Filen indeholder også miljøvariablerne og kommandoerne til billedoprettelse. Du kan oprette en Dockerfil som enhver anden fil. Du skal angive instruktionerne på filen ved hjælp af en syntaks, som Docker forstår. Følgende er et eksempel på en prøve Dockerfile:
5. Docker Compose
Docker Compose er et værktøj til at definere og køre Docker-applikationer med flere beholdere. Du konfigurerer alle tjenesterne i en YAML-fil. En YAML-fil er et dokument, hvor du angiver de nødvendige tjenester til din ansøgning. Du kan derefter oprette og køre alle tjenester ved hjælp af en enkelt kommando.
Docker Compose kan køre applikationer i forskellige miljøer. Disse kan være produktions-, iscenesættelses-, udviklings- eller testmiljøer. Docker Compose forenkler den komplekse proces med at orkestrere flere containere.
Du kan bruge Docker Compose til at administrere en applikation gennem hele dens livscyklus. Dette kan omfatte start, stop og genopbygning af tjenester. Du kan også se status for kørende tjenester, stream-logoutput og kørselskommandoer på en tjeneste.
Med Docker Compose kan du konfigurere netværk, administrere mængder og angive afhængigheder. Du kan også skalere applikationer horisontalt i produktionen ved at specificere replikatjenester.
Compose forenkler udrulningen af komplekse applikationer til forskellige miljøer. Du kan også bruge det til at replikere det samme miljø i forskellige systemer. Lær at bruge Docker Compose kan øge din applikations effektivitet.
Her er et eksempel på en Docker Compose YAML-fil:
6. Docker Hub
Docker Hub er et online containerregister til Docker. Da det er det største containerregister, er det et samarbejdsværktøj for udviklere og open source-bidragydere. Det er også en fremragende markedsplads for softwareleverandører.
Docker Hub er en pålidelig ressource til at finde pålidelig virtualiseringssoftware. Du kan oprette et lager og dele over 100.000 billeder.
Du kan vært for dine applikationer og kode på platformen. Du kan også samarbejde om projekter med andre udviklere. Docker Hub har en gratis offentlig mulighed eller betalte private reposer til specifikke autoriserede teams.
7. Docker netværk
Docker-netværk er en funktion, der gør det muligt for containere at kommunikere med hinanden og eksterne ressourcer. Netværk giver kontrolleret og isoleret kommunikation mellem containere. Disse kan være containere, der kører på enkelte eller flere værter.
Når du kører en container på din maskine, udsættes den ikke for eksterne netværk. Du bruger porte til at udsætte containerne for eksterne IP-adresser, DNS-tjenester, rutetabeller og internetgateways.
Netværk giver containere mulighed for at fungere i isolerede netværksmiljøer. Netværkene leverer navnerum og IP-adresser, hvilket reducerer containerkonflikter og forbedrer sikkerheden.
8. Docker-volumener
I Docker er volumener en mekanisme, der bruges til at gemme vedvarende data. Ved design er containere flygtige. Det betyder, at det er nemt at erstatte eller ødelægge dem med alle deres data. Men der er tilfælde, hvor du ønsker at beholde dataene. I sådanne tilfælde kan du bruge Docker-volumener til at administrere vedvarende data.
Volumener har også andre anvendelser, herunder at tillade deling af data mellem containere. De er nemme at sikkerhedskopiere og migrere sammenlignet med andre former for opbevaring. Derudover kan du administrere mængder ved hjælp af Docker CLI eller API.
Hvis du kører en container uden en volumen, opretter Docker automatisk en. Du kan også oprette og administrere volumener, der er isoleret fra enhver container. Brug følgende kommando til at oprette en diskenhed.
docker volume create my-vol
For at se det volumen, du har oprettet, skal du køre følgende kommando:
docker volume ls //local my-vol
Du kan derefter vedhæfte volumen til enhver beholder, du ønsker. Du kan læse mere om bind på Docker officiel dokumentation.
Andre Docker-funktioner
Docker er et af de bedste valg til containerstyring og versionskontrol. Hvis du lærer Dockers værktøjssæt, kan du booste og strømline din udviklingsarbejdsgang.
Docker har mange funktioner, som du kan bruge til at administrere dine applikationer. Når du har mestret nøglefunktionerne, kan du udforske andre komplekse funktioner som Docker Swarm, der bruges til at orkestrere komplekse applikationer.