Elixir og Phoenix: Skalerbar backendutvikling · leksjon

Konteinerisering med Docker

Pakk Elixir-/Phoenix-applikasjonen din i Docker-konteinere for konsistente og portable distribusjoner.

Leksjon 2 av 411 trinn

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-app

Bygg 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!

Gratis å komme i gang

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

  1. Bygg utgivelser med Mix Release
  2. Konteinerisering med Docker
  3. Strategier for skydistribusjon
  4. Distribusjoner uten nedetid og hot upgrades
← Tilbake til Elixir og Phoenix: Skalerbar backendutvikling