Vad är Docker? Containrar förklarade för icke-utvecklare
Docker är ett verktyg som paketerar en app tillsammans med allt den behöver för att köras – rätt språkversion, bibliotek, systemverktyg och inställningar – i en standardenhet som kallas en container. En container körs på samma sätt på en utvecklares laptop, en testserver eller en molnvärd, vilket löser det klassiska problemet "men det fungerade på min dator". Receptet för att bygga en container är en kort textfil som kallas Dockerfile.
Varför Docker spelar roll när du bygger med AI
Om din app har en backend – ett API i Python, Node, C# eller Java – måste den köras någonstans där precis rätt programvara är installerad. Docker är det vanligaste sättet att göra det repeterbart.
- Driftsätta backends. Många värdtjänster, inklusive Mythex, driftsätter backends genom att bygga en container från en Dockerfile. I Mythex får du, när du ber om "ett C# Web API" eller "en Java-backend", appen plus en Dockerfile, och Publicera bygger imagen och driftsätter den (API-backends).
- Lämna en plattform. Om du exporterar en AI-byggd app gör en Dockerfile det mycket enklare att köra den på en annan värd. Se hur du exporterar och själv hostar en AI-byggd app.
- Samarbeta med utvecklare. En utvecklare som går med i ditt projekt kan starta hela appen med ett eller två kommandon i stället för att ägna en dag åt att installera saker.
En vardaglig liknelse: fraktcontainrar
Innan standardiserade fraktcontainrar lastades gods bit för bit – säckar, fat, lådor – och varje hamn hanterade det på sitt eget sätt. Den standardiserade stålcontainern förändrade det: packa en gång, så kan vilket fartyg, vilken kran, tåg eller lastbil som helst flytta den utan att bry sig om vad som finns inuti.
Docker gör detsamma för mjukvara:
- Dockerfilen är packlistan och instruktionerna.
- Imagen är den försegla, packade containern.
- En körande container är den lådan i arbete på ett fartyg – här en server.
- Docker Engine är kranen och fartyget: programvaran på en server som vet hur man kör vilken container som helst.
Så fungerar Docker
| Del | Vad det är |
|---|---|
| Dockerfile | En textfil med steg-för-steg-instruktioner för att bygga imagen. |
| Image | Ett skrivskyddat paket: grundläggande operativsystemdelar, språkmiljö, bibliotek och din kod. |
| Container | En körande instans av en image, isolerad från andra appar på samma maskin. |
| Register | Ett ställe för att lagra och dela images, till exempel Docker Hub eller en molnleverantörs register. |
| Docker Engine | Bakgrundstjänsten som bygger images och kör containrar. Gratis och med öppen källkod. |
| Docker Desktop | En app för Mac, Windows och Linux som paketerar motorn med ett grafiskt gränssnitt. |
Containrar kontra virtuella maskiner: en virtuell maskin låtsas vara en helt separat dator med eget operativsystem, så den är tung och startar långsamt. En container delar värdens operativsystemkärna och isolerar bara appen och dess filer, så den startar vanligtvis på några sekunder och använder mycket mindre minne. Många containrar kan köra sida vid sida på en server.
Ett praktiskt exempel: ett litet Python-API
Säg att din AI-byggare skapade en Python FastAPI-backend för en bokningsapp. Dockerfilen kan se ut så här:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Rad för rad:
| Rad | Vad den gör |
|---|---|
FROM python:3.12-slim | Startar från en officiell image som redan har Python 3.12 installerat. |
WORKDIR /app | Arbetar i mappen /app i containern. |
COPY requirements.txt . och RUN pip install ... | Kopierar listan över bibliotek och installerar dem. |
COPY . . | Kopierar in appens egen kod. |
EXPOSE 8000 | Noterar att appen lyssnar på port 8000. |
CMD [...] | Kommandot som startar webbservern när containern körs. |
Med enkla ord: "Starta med Python 3.12. Installera biblioteken som står i requirements.txt. Kopiera in koden. Starta webbservern på port 8000."
En utvecklare (eller en hostingplattform) kör sedan två kommandon:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
Det första bygger imagen och ger den namnet booking-api. Det andra startar en container och kopplar port 8000 på maskinen till port 8000 inuti containern. API:et körs nu – på samma sätt som det gör på varje server som har Docker.
Notera vad som inte finns i imagen: lösenord och API-nycklar. De skickas in när containern startar, som miljövariabler, så att samma image kan köras i test och produktion med olika inställningar.
Nyckeltermer
| Term | Betydelse |
|---|---|
| Container | Ett isolerat, körande paket med en app och dess beroenden. |
| Image | Mallen som en container startas från. |
| Basimage | Utgångspunkten på FROM-raden i en Dockerfile, till exempel python:3.12-slim eller node:22. |
| Lager (layer) | Varje Dockerfile-steg lägger till ett cachat lager, vilket gör ombyggnader snabbare. |
| Portmappning | Att koppla en port på värden till en port inuti containern. |
| Volym | Lagring som överlever när en container ersätts. Containrar i sig är engångsbara. |
| Docker Compose | En fil som beskriver flera containrar som körs tillsammans, till exempel ett API och en databas. |
| Kubernetes | Ett system för att köra många containrar på många servrar. De flesta små appar behöver inte det. |
Vanliga missuppfattningar
- "Docker är en virtuell maskin." Den är lättare: containrar delar värdens kärna.
- "Data som sparas i en container är säker." Containrar är avsedda att kastas och ersättas. Allt som måste bestå – användardata, uppladdningar – hör hemma i en databas, fillagring eller en volym.
- "Att lägga hemligheter i Dockerfilen är ok eftersom den är privat." Images delas och pushas till register. Skicka hemligheter vid körning i stället.
- "Docker gör en app säker." Isolering hjälper, men en container med föråldrad programvara och svaga inställningar är fortfarande sårbar.
- "Varje app behöver Docker." En statisk sajt eller ett enkelt frontend hostas oftast som vanliga filer, utan någon container alls.
- "Docker Desktop är gratis för alla." Motorn är gratis; Docker Desktop kräver en betald prenumeration för större företag, enligt Dockers villkor.
Vad du ska fråga din AI-byggare
- "Behöver den här appen en Dockerfile? I så fall, förklara varje rad med enkla ord."
- "Använd en liten, officiell basimage och lås språkversionen."
- "Håll hemligheter utanför imagen. Läs dem från miljövariabler vid körning."
- "Se till att uppladdningar och data lagras i databasen eller fillagringen, inte inuti containern."
- "Lägg till en Docker Compose-fil så att en utvecklare kan köra frontend, API och databas lokalt med ett kommando."
- "Lägg till en hälsokontroll-endpoint så att värden kan se om API:et är igång."
Docker i Mythex
Du behöver inte installera eller köra Docker för att använda Mythex. Ditt projekt körs i en privat molnsandlåda, och när du ber om en backend som kräver en container – till exempel C#, Java eller en egen Node- eller Python-tjänst – skriver Mythex appen plus en Dockerfile, förhandsvisar den i sandlådan och driftsätter den när du publicerar, utan att du behöver sätta upp någon hosting (hur tekniken väljs). På Pro kan du exportera projektet eller synka det till GitHub och ta med Dockerfilen. För hur backends och frontends hänger ihop, se frontend kontra backend.
Frågor
Vad är Docker med enkla ord?
Docker är ett verktyg som paketerar en app tillsammans med allt den behöver för att köras – språkmiljön, bibliotek och inställningar – i en standardiserad enhet som kallas en container. Containern körs på samma sätt på en laptop, en testserver eller en molnvärd.
Vad är skillnaden mellan en Docker-image och en container?
En image är den paketerade, skrivskyddade mallen: appen och dess beroenden, byggda från en Dockerfile. En container är en körande kopia av den imagen. Du kan starta många containrar från en och samma image.
Är Docker en virtuell maskin?
Nej. En virtuell maskin emulerar en hel dator med eget operativsystem. Containrar delar värddatorns operativsystemkärna och isolerar bara appen, så de startar snabbare och använder mindre minne.
Är Docker gratis?
Docker Engine, kärnan som kör containrar, är gratis och har öppen källkod. Enligt Dockers villkor från september 2026 är Docker Desktop gratis för icke-kommersiella projekt med öppen källkod och för företag med färre än 250 anställda och mindre än 10 miljoner dollar i årsintäkt; större företag behöver en betald prenumeration.
Behöver jag lära mig Docker för att bygga en app med AI?
Oftast inte. Många AI-byggare hanterar containrar åt dig. Det hjälper dock att veta vad en Dockerfile är, så att du förstår hur en backend paketeras och kan köra eller hosta appen någon annanstans om du exporterar den.