Průvodce pro začátečníky - Docker-Compose - jak vytvořit stranu klienta / serveru

Jste vývojář a chcete objevit docker-compose? Tento článek je určen pro vás.

Autorská práva na dev.to post

Po krátkém představení aplikace Docker-Compose budete moci pomocí aplikace Docker vytvořit svou první aplikaci na straně klienta / serveru.

Tento článek bere v úvahu, že znáte základy Dockera. Pokud ne, nepropadejte panice! Navrhuji, abyste si přečetli můj první článek, abyste objevili Dockera a naučili se, jak vytvořit svou první aplikaci.

Co je Docker-Compose?

Docker-Compose je nástroj poskytovaný společností Docker. Pro zjednodušení je tento nástroj implementován k řešení architektonických problémů ve vašich projektech.

Jak jste si možná všimli v mém předchozím článku, vytvořili jsme jednoduchý program, který při spuštění uvedl „Docker is magic!“.

Pokud jste vývojář, bohužel zřídka vytvoříte samostatný program (program, který nevyžaduje spuštění dalších služeb, například databáze).

Jak ale víte, že potřebujete Docker-Compose? Je to snadné, pokud vaše aplikace vyžaduje spuštění několika služeb, tento nástroj potřebujete. Například, pokud vytvoříte web, který se musí připojit k vaší databázi k ověření uživatelů (zde 2 služby, web a databáze).

Docker-compose vám nabízí možnost spustit všechny tyto služby jedním příkazem.

Rozdíl mezi Docker a Docker-Compose

Docker se používá ke správě samostatného kontejneru (služby) pro vaši aplikaci.

Docker-Compose se používá ke správě několika kontejnerů současně pro stejnou aplikaci. Tento nástroj nabízí stejné funkce jako Docker, ale umožňuje mít složitější aplikace.

Dokovací stanice (samostatný kontejner) VS Dokovací stanice (několik kontejnerů)

Typický případ použití

Tento nástroj se může stát velmi výkonným a umožňuje vám rychle nasadit aplikace se složitými architekturami. Dám vám konkrétní případovou studii, která prokáže, že ji potřebujete.

Představte si, že jste hrdým tvůrcem vašeho webového softwaru.

Vaše řešení nabízí dva weby. První umožňuje obchodům vytvořit svůj internetový obchod několika kliknutími. Druhá část je věnována podpoře zákazníků. Tyto dva weby interagují se stejnou databází.

Začínáte být úspěšní a váš server již nestačí. Takže se rozhodnete migrovat celý software do jiného počítače.

Bohužel jste nepoužili docker-compose. Takže budete muset migrovat a překonfigurovat své služby jeden po druhém a doufat, že na nic nezapomenete.

Pokud byste použili docker-compose, pouze v několika příkazech, nasadili byste celou novou architekturu na nový server. Jediné, co musíte udělat, je provést několik konfigurací a načíst zálohu databáze a dokončit migraci.

Nyní vytvořme vaši první aplikaci na straně klienta / serveru pomocí aplikace Docker-Compose

Nyní, když víte, k čemu bude docker-compose použit, je čas vytvořit vaši první aplikaci na straně klienta / serveru!

Cílem tohoto tutoriálu je vytvořit v Pythonu malý web (server), který bude obsahovat větu. Tuto větu musí získat program (klient) v Pythonu, který zobrazí větu.

Poznámka: Tento tutoriál bere v úvahu, že jste již do počítače nainstalovali aplikaci Docker a že máte základní znalosti. Pokud tomu tak není, žádám vás, abyste se odkazovali na můj předchozí článek.

1. Vytvořte svůj projekt

Chcete-li vytvořit svou první aplikaci klient / server, zvám vás k vytvoření složky v počítači. Musí obsahovat v kořenovém adresáři následující soubor a složky:

  • Soubor „docker-compose.yml“ (soubor docker-compose, který bude obsahovat potřebné pokyny k vytvoření různých služeb).
  • Složka „server“ (tato složka bude obsahovat soubory potřebné k nastavení serveru).
  • Složka „klient“ (tato složka bude obsahovat soubory potřebné k nastavení klienta).

Měli byste mít tuto architekturu složek:

.
├── klient /
├── docker-compose.yml
└── server /
2 adresáře, 1 soubor

2. Vytvořte server

Začneme připomenutím základů Dockera, začneme vytvořením serveru.

2a. Vytvářejte soubory

Přesuňte se do složky „server“ a vytvořte následující soubory:

  • Soubor „server.py“ (soubor python, který bude obsahovat kód serveru).
  • Soubor „index.html“ (soubor HTML, který bude obsahovat zobrazovanou větu).
  • Soubor „Dockerfile“ (soubor docker, který bude obsahovat potřebné pokyny k vytvoření prostředí serveru).

Tuto složku složek byste měli mít v následující cestě „server /“:

.
├── Dokovací soubor
├── index.html
└── server.py
0 adresářů, 3 soubory

2b. Upravte soubor Python

Do souboru „server.py“ můžete přidat následující kód:

Tento kód vám umožní vytvořit jednoduchý webový server uvnitř této složky. Načte obsah souboru index.html a sdílí jej na webové stránce.

2c. Upravte soubor Html

Do souboru „index.html“ můžete přidat následující větu:

Server bude tento soubor sdílet na začátku a tato věta se zobrazí.

2d. Upravte soubor Docker

Zde vytvoříme základní soubor Dockerfile, který bude mít na starosti provádění našeho souboru Python. K tomu použijeme oficiální obrázek vytvořený k provedení Pythonu.

3. Vytvořte si klienta

Abychom pokračovali s připomenutím základů Dockera, vytvoříme klienta.

3a. Vytvářejte soubory

Přesuňte se do složky „klient“ a vytvořte následující soubory:

  • Soubor „client.py“ (soubor python, který bude obsahovat kód klienta).
  • Soubor „Dockerfile“ (soubor docker, který bude obsahovat potřebné pokyny k vytvoření prostředí klienta).

Normálně byste měli mít tuto architekturu složky v následující cestě „klient /“:

.
├── client.py
└── Dokovací soubor
0 adresářů, 2 soubory

3b. Upravte soubor Python

Do souboru „client.py“ můžete přidat následující kód:

Tento kód vám umožní získat obsah webové stránky serveru a zobrazit ji.

3c. Upravte soubor Docker

Pokud jde o server, vytvoříme základní soubor Dockerfile, který bude mít na starosti provádění našeho souboru Python.

4. Zpět na Docker-Compose

Jak jste si možná všimli, vytvořili jsme dva různé projekty, server a klient, oba s Dockerfile.

Zatím se nic nezměnilo od základů, které již znáte.

Nyní budeme upravovat „docker-compose.yml“ v kořenovém adresáři úložiště.

Poznámka: Docker-Compose je kompletní a jeho cílem je poskytnout vám konkrétní a typický příklad. Proto neuvidíte všechna klíčová slova.

5. Sestavte Docker-Compose

Jakmile je docker-compose nastaven, musí být vytvořena aplikace klient / server. Tento krok odpovídá příkazu „docker build“, ale vztahuje se na různé služby.

$ docker-compose build

6. Spusťte aplikaci Docker-Compose

Váš docker-compose je postaven! Nyní je čas začít! Tento krok odpovídá příkazu „docker run“, ale vztahuje se na různé služby.

$ docker-compose up

Tady to máš, to je vše. Ve vašem terminálu byste měli vidět „Docker-Compose is magic!“.

Poznámka: Jak je uvedeno v tutoriálu, služba „server“ používá port 1234 počítače k ​​distribuci jejího obsahu. Pokud na počítači otevřete stránku „http: // localhost: 1234 /“, měla by se zobrazit zpráva „Docker-Compose is magic!“.

Kód je k dispozici

Pokud si přejete načíst celý kód, abyste jej snadno našli nebo spustili, dal jsem vám ho k dispozici na svém Githubu.

Užitečné příkazy pro Docker

Jako obvykle jsem připravil seznam objednávek, které mohou být pro vás užitečné s docker-compose.

  • Zastaví kontejnery a odstraní kontejnery, obrázky… vytvořené pomocí „docker-compose up“.
$ docker-compose down
  • Zobrazuje výstup protokolu ze služeb (příklad: „docker-compose logs -f client“).
$ docker-compose logs -f [název služby]
  • Seznamy kontejnerů.
$ docker-compose ps
  • Spustí příkaz v běžícím kontejneru (příklad: „docker-compose exec server ls“).
$ docker-compose exec [název služby] [příkaz]
  • Vypíše obrázky.
$ docker-compose images

Už je konec…

Děkuji za přečtení! Pravidelně sdílím články o FreeCodeCamp; můžete se podívat na můj profil na Twitteru a sledovat mé aktivity a získat užitečné tipy a zprávy o vývoji.

Pokud se chcete naučit kódovat, získejte prostředky zaslané přímo do vaší poštovní schránky, které vám umožní zlepšit programovací dovednosti. Získejte nejnovější články, kurzy, návody, tipy, knihy, motivaci a další exkluzivní obsah.
Připojte se tedy k nové komunitě věnované kódu bez dalšího prodlení (záruka bez spamu)!

-> Přihlaste se k odběru novinek [Here We Code]

Neváhejte a poskytněte mi zpětnou vazbu, abyste mohli vylepšit své budoucí články v komentářích níže.