En begyndervejledning til Docker - hvordan man opretter en klient / serverside med Docker-Compose

Du er en udvikler, og du vil opdage docker-komponere? Denne artikel er lavet til dig.

Ophavsret til dev.to post

Efter en kort introduktion om Docker-Compose vil du være i stand til at oprette din første klient / serverside-applikation med Docker.

Denne artikel tager højde for, at du kender det grundlæggende i Docker. Hvis ikke, skal du ikke få panik! Jeg foreslår, at du læser min første artikel for at opdage Docker og lære at oprette din første applikation.

Hvad er Docker-Compose?

Docker-Compose er et værktøj leveret af Docker. For at gøre det enkelt implementeres dette værktøj til at løse arkitektoniske problemer i dine projekter.

Som du måske har bemærket i min tidligere artikel, skabte vi et simpelt program, der viste "Docker er magi!", Da det blev lanceret.

Desværre opretter du sjældent et selvstændigt program (et program, der ikke kræver andre tjenester for at køre, f.eks. En database), når du er udvikler.

Hvordan ved du dog, om du har brug for Docker-Compose? Det er let, hvis din ansøgning kræver flere tjenester at køre, du har brug for dette værktøj. For eksempel, hvis du opretter et websted, der skal oprette forbindelse til din database for at autentificere brugere (her 2 tjenester, websted og database).

Docker-compose giver dig muligheden for at starte alle disse tjenester i en enkelt kommando.

Forskel mellem Docker og Docker-Compose

Docker bruges til at administrere en individuel container (service) til din applikation.

Docker-Compose bruges til at administrere flere containere på samme tid til den samme applikation. Dette værktøj tilbyder de samme funktioner som Docker, men giver dig mulighed for at have mere komplekse applikationer.

Docker (individuel beholder) VS Docker-Compose (flere containere)

En typisk brugssag

Dette værktøj kan blive meget kraftfuldt og giver dig mulighed for at implementere applikationer med komplekse arkitekturer meget hurtigt. Jeg vil give dig en konkret casestudie, der vil bevise, at du har brug for det.

Forestil dig, du er den stolte skaber af din websoftware.

Din løsning tilbyder to websteder. Den første giver butikker mulighed for at oprette deres online butik med et par klik. Det andet er dedikeret til kundesupport. Disse to steder interagerer med den samme database.

Du begynder at få succes, og din server er ikke længere tilstrækkelig. Så du beslutter at migrere hele softwaren til en anden maskine.

Desværre brugte du ikke docker-compose. Så du bliver nødt til at migrere og konfigurere dine tjenester den ene efter den anden i håb om, at intet er glemt.

Hvis du havde brugt en docker-kompos i nogle få kommandoer, ville du have implementeret hele arkitekturen på din nye server. Alt hvad du skal gøre nu er at lave et par konfigurationer og indlæse sikkerhedskopien af ​​din database for at afslutte migreringen.

Lad os nu oprette din første klient / serverside-applikation med Docker-Compose

Nu hvor du ved, hvad docker-compose skal bruges til, er det tid til at oprette din første klient / serverside-applikation!

Formålet med denne tutorial er at oprette et lille websted (server) i Python, der indeholder en sætning. Denne sætning skal hentes af et program (klient) i Python, der viser sætningen.

Bemærk: Denne tutorial tager højde for, at du allerede har installeret Docker på din computer, og at du har det grundlæggende. Hvis dette ikke er tilfældet, inviterer jeg dig til at henvise til min tidligere artikel.

1. Opret dit projekt

For at oprette din første klient / serverapplikation, inviterer jeg dig til at oprette en mappe på din computer. Det skal indeholde følgende fil og mapper ved rod:

  • En 'docker-compose.yml' fil (docker-compose-fil, der vil indeholde de nødvendige instruktioner til at oprette de forskellige tjenester).
  • En "server" -mappe (denne mappe vil indeholde de filer, der er nødvendige for at opsætte serveren).
  • En "klient" -mappe (denne mappe vil indeholde de filer, der er nødvendige for at konfigurere klienten).

Du skal have denne mappearkitektur:

.
├── klient /
├── docker-compose.yml
└── server /
2 mapper, 1 fil

2. Opret din server

For at starte med påmindelser om Dockers grundlæggende vil vi starte med at oprette serveren.

2a. Opret filer

Gå til din "server" -mappe og opret følgende filer:

  • En 'server.py'-fil (python-fil, der vil indeholde serverkoden).
  • En 'indeks.html' -fil (HTML-fil, der indeholder den sætning, der skal vises).
  • En 'Dockerfile' -fil (docker-fil, der vil indeholde de nødvendige instruktioner til at skabe miljøet på serveren).

Du skal have denne mappearkitektur på følgende sti 'server /':

.
├── Dockerfile
├── indeks.html
└── server.py
0 mapper, 3 filer

2b. Rediger Python-filen

Du kan tilføje følgende kode til filen 'server.py':

Denne kode giver dig mulighed for at oprette en simpel webserver i denne mappe. Den henter indholdet af filen index.html for at dele den på en webside.

2c. Rediger Html-filen

Du kan tilføje følgende sætning til filen 'index.html':

Serveren vil dele denne fil ved starten, og denne sætning vises.

2d. Rediger Docker-filen

Her vil vi oprette en grundlæggende Dockerfile, der er ansvarlig for udførelsen af ​​vores Python-fil. For at gøre det vil vi bruge det officielle billede, der er oprettet til at udføre Python.

3. Opret din klient

For at fortsætte med påmindelser om Dockers grundlæggende, opretter vi klienten.

3a. Opret filer

Gå til din 'klient' -mappe, og opret følgende filer:

  • En 'client.py' -fil (python-fil, der vil indeholde klientkoden).
  • En 'Dockerfile' -fil (docker-fil, der vil indeholde de nødvendige instruktioner til at skabe klientens miljø).

Normalt skal du have denne mappearkitektur i den følgende sti 'klient /':

.
├── client.py
└── Dockerfile
0 mapper, 2 filer

3b. Rediger Python-filen

Du kan tilføje følgende kode til filen 'client.py':

Denne kode giver dig mulighed for at hente indholdet på serverwebsiden og vise det.

3c. Rediger Docker-filen

Med hensyn til serveren opretter vi en grundlæggende Dockerfile, der er ansvarlig for udførelsen af ​​vores Python-fil.

4. Tilbage til Docker-Compose

Som du måske har bemærket, har vi oprettet to forskellige projekter, serveren og klienten, begge med en Dockerfile.

Indtil videre har intet ændret sig fra det grundlæggende, du allerede kender.

Nu skal vi redigere ‘docker-compose.yml’ i roden til depotet.

Bemærk: Docker-Compose er komplet, og denne artikel har til formål at give dig et konkret og typisk eksempel. Derfor ser du ikke alle nøgleordene.

5. Byg Docker-Compose

Når docker-compose er konfigureret, skal din klient / server-applikation bygges. Dette trin svarer til 'docker build'-kommandoen, men anvendes til de forskellige tjenester.

$ docker-komponere build

6. Kør Docker-Compose

Din docker-kompos er bygget! Nu er det tid til at starte! Dette trin svarer til kommandoen 'docker run', men anvendes til de forskellige tjenester.

$ docker-komponere

Der går du, det er det. Du skal se “Docker-Compose is magic!” Vises på din terminal.

Bemærk: Som angivet i selvstudiet bruger din 'server' tjeneste port 1234 på din computer til at distribuere dens indhold. Hvis du åbner siden 'http: // localhost: 1234 /' på din computer, skal du se 'Docker-Compose is magic!'.

Kode er tilgængelig

Hvis du vil hente den komplette kode for at finde den let eller udføre den, har jeg stillet den til din rådighed på min Github.

Nyttige kommandoer til Docker

Som sædvanligt har jeg udarbejdet en liste over ordrer, der kan være nyttige for dig med docker-compose.

  • Stopper containere og fjerner containere, billeder… oprettet af ‘docker-compose up’.
$ docker-komponere
  • Viser logoutput fra tjenester (eksempel: 'docker-komponer logfiler -f-klient').
$ docker-komponere logfiler -f [tjenestenavn]
  • Lister containere.
$ docker-komponere ps
  • Udfører kommandoen i en kørende container (eksempel: 'docker-compose exec server ls').
$ docker-compose exec [tjenestenavn] [kommando]
  • Lister billeder.
$ docker-komponere billeder

Det er allerede ovre ...

Tak for at have læst! Jeg deler regelmæssigt artikler om FreeCodeCamp; kan du tjekke min Twitter-profil for at følge mine aktiviteter og få nyttige tip og nyheder om udvikling.

Hvis du vil lære at kode, skal du modtage ressourcer sendt direkte til din postkasse, som giver dig mulighed for at forbedre dine programmeringsevner. Få de nyeste artikler, kurser, tutorials, tip, bøger, motivation og andet eksklusivt indhold.
Så tilmeld dig det nye samfund dedikeret til kode uden yderligere forsinkelse (spam-fri garanti)!

-> Abonner på [Here We Code] nyhedsbrev

Tøv ikke med at give mig nogle feedback for at forbedre mine fremtidige artikler i kommentarerne herunder.