Konteinerisering med Docker
Pakk Elixir-/Phoenix-applikasjonen din i Docker-konteinere for konsistente og portable distribusjoner.
Konteinerisering med Docker er en gratis leksjon i Elixir og Phoenix: Skalerbar backendutvikling på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Elixir og Phoenix: Skalerbar backendutvikling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Elixir og Phoenix: Skalerbar backendutvikling inneholder totalt 4 leksjoner.
Velkommen til Docker for Elixir!
I denne leksjonen lærer du å pakke Elixir- og Phoenix-applikasjoner ved hjelp av Docker-containere. Dette gjør distribusjonene dine konsistente og portable på tvers av ulike miljøer.
Se på Docker som en måte å samle applikasjonen og alle avhengighetene dens i én enkelt, isolert pakke.
Images, containere og Dockerfiles
La oss definere noen sentrale Docker-begreper:
- Image: En lett, frittstående og kjørbar pakke som inneholder alt som trengs for å kjøre et program, inkludert kode, kjøretidsmiljø, systemverktøy, biblioteker og innstillinger.
- Container: En kjørende instans av et image. Det er en isolert prosess som deler vertens OS-kjerne, men kjører i sitt eget miljø.
- Dockerfile: En tekstfil som inneholder alle kommandoene en bruker kan kjøre på kommandolinjen for å sette sammen et image. Den er oppskriften din på å bygge et image.
Hvorfor Docker for Elixir/Phoenix?
Elixir- og Phoenix-applikasjoner har stor nytte av containerisering:
- Konsistente miljøer: Sørg for at appen kjører på samme måte fra utvikling til produksjon, slik at du unngår problemer av typen «det fungerer på min maskin».
- Håndtering av avhengigheter: Administrer enkelt Erlang/OTP, Elixir-versjoner og avhengigheter på systemnivå.
- Portabilitet: Distribuer den containeriserte appen på alle systemer som kjører Docker, fra lokale maskiner til skyservere.
- Isolasjon: Containere isolerer applikasjonen og hindrer konflikter med annen programvare på vertssystemet.
Et enkelt Elixir-skript
Før vi containeriserer noe, lager vi et enkelt Elixir-skript. Vi legger det i en fil som heter hello.exs. Dette skriptet skriver ganske enkelt ut en hilsen.
Du kan kjøre det lokalt med elixir hello.exs.
IO.puts "Hello from Elixir in a container!"Lag Dockerfile-filen
En Dockerfile fungerer omtrent som et sett med instruksjoner for å bygge Docker-imaget ditt. Her er en grunnleggende variant for det enkle Elixir-skriptet vårt:
FROM: Angir basis-imaget (for eksempel et offisielt Elixir-image).WORKDIR: Angir arbeidskatalogen inne i containeren.COPY: Kopierer filer fra vertsmaskinen din til containeren.CMD: Definerer standardkommandoen som skal kjøres når en container starter.
Eksempel på Dockerfile: Enkel Elixir
La oss opprette en Dockerfile i samme katalog som hello.exs:
FROM elixir:1.15.7-slim-bullseye velger et slankt basis-image med Elixir 1.15.7. COPY . . kopierer alt fra den gjeldende katalogen til containerens arbeidskatalog. CMD ["elixir", "hello.exs"] kjører skriptet vårt.
FROM elixir:1.15.7-slim-bullseye
WORKDIR /app
COPY hello.exs .
CMD ["elixir", "hello.exs"]Bygg Docker-imaget
Når Dockerfile og hello.exs er klare, kan du bygge Docker-imaget ditt. Åpne terminalen i samme katalog og kjør:
-t my-elixir-app gir imaget et navn som gjør det enkelt å referere til det. . forteller Docker at Dockerfile ligger i den gjeldende katalogen.
docker build -t my-elixir-app .Kjør Elixir-containeren
Når imaget er bygget, kan du kjøre en container fra det:
Denne kommandoen starter en ny container basert på imaget my-elixir-app. Du skal se teksten «Hello from Elixir in a container!» skrevet ut i terminalen. Elixir-applikasjonen kjører nå i en isolert Docker-container!
docker run my-elixir-appBygg med flere trinn for produksjon
For ekte Phoenix-applikasjoner er bildestørrelsen viktig. Bygging med flere trinn lar deg bruke flere FROM-setninger i Dockerfile-filen for å opprette mindre og sikrere images.
Vanligvis har du et «build»-trinn, der avhengigheter hentes og kompileres, og et «release»-trinn, som bare kopierer den ferdig kompilerte applikasjonen og et minimalt kjøretidsmiljø. Dette reduserer størrelsen på det endelige imaget betydelig.
Kjapp test: Grunnleggende om Dockerfile
Hvilken Dockerfile-instruksjon angir basis-imaget som brukes til å bygge containeren?
Oppsummering: Docker for Elixir
Vi har sett på hvordan Docker containeriserer Elixir-/Phoenix-applikasjoner og gir konsistens og portabilitet. Du har lært om Docker-images, containere og hvordan de defineres ved hjelp av en Dockerfile. Vi har gått gjennom hvordan man bygger og kjører en enkel Elixir-app i en container, og introdusert bygging med flere trinn for optimaliserte produksjons-images.
Deretter kan du utforske Docker Compose for applikasjoner med flere tjenester eller distribuere disse containerne til skyen!
Lær deg Elixir med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Konteinerisering med Docker» gratis?
Ja – hele teksten i «Konteinerisering med Docker» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Elixir og Phoenix: Skalerbar backendutvikling-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Elixir og Phoenix: Skalerbar backendutvikling inneholder totalt 4 leksjoner.
Hva lærer jeg i «Konteinerisering med Docker»?
Pakk Elixir-/Phoenix-applikasjonen din i Docker-konteinere for konsistente og portable distribusjoner. Du øver på Elixir og Phoenix: Skalerbar backendutvikling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Elixir og Phoenix: Skalerbar backendutvikling?
Ingen tidligere erfaring er nødvendig. Elixir og Phoenix: Skalerbar backendutvikling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Konteinerisering med Docker»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Elixir og Phoenix: Skalerbar backendutvikling-leksjonen?
Ja. Alle Elixir og Phoenix: Skalerbar backendutvikling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Bygg utgivelser med Mix Release
- Konteinerisering med Docker
- Strategier for skydistribusjon
- Distribusjoner uten nedetid og hot upgrades