Evo kako dobiti najbolje iskustvo Dockera u sustavu Windows.

Windows podsustav za Linux 2 je fenomenalan alat na Windowsima 10 i 11 i neprimjetno se integrira s Dockerom. Kao programeri, bitno je razumjeti što ovaj softver nudi i kako možete najbolje iskoristiti svoje postavke Docker-WSL 2.

Što je Docker?

Docker je platforma otvorenog koda koja programerima omogućuje učinkovitu izgradnju, implementaciju i pokretanje svojih aplikacija unutar spremnika. Sve ovisnosti su skupljene tako da se vaš projekt može lako implementirati u bilo kojem okruženju.

Docker je vrlo popularan među mnogim platformama za kontejnerizaciju jer je pouzdan, funkcionalan i visoko skalabilan. Radi na Docker motoru, bitnom DevOps alatu koji pruža čisto i lagano okruženje za testiranje i implementaciju. Docker je sličan virtualnom stroju, ali virtualizira operativni sustav, a ne temeljni hardver.

Za programere softvera, Docker pojednostavljuje tijek rada stvaranjem pojedinačnih spremnika za različite mikroservise koji uključuju potrebne ovisnosti, biblioteke i konfiguracije. Svaki spremnik mikroservisa je izoliran i pojedinačno skalabilan.

Kako koristiti Docker na WSL 2

Docker je kompatibilan sa svim glavnim operativnim sustavima, kao što su Windows, macOS i Linux. Ako imate Windows 10 ili 11, možete koristiti Docker putem Docker Desktop i integrirajte ga s podsustavom Windows za Linux 2 za poboljšane performanse. Docker Desktop za Windows možete preuzeti s službena Docker web stranica.

Windows podsustav za Linux (WSL) vrijedna je značajka koja korisnicima Windowsa omogućuje pokretanje distribucija Linuxa kao što su Ubuntu i Kali bez postavljanja virtualnog stroja ili dvostrukog pokretanja.

Ovo također znači da Windows korisnici mogu izravno koristiti Linux alate naredbenog retka, aplikacije i uslužni programi bez dodatnih instalacijskih koraka. Najnovija verzija WSL-a, WSL 2, pruža veću stabilnost i namjenski Linux kernel.

Budući da su Docker spremnici robusni, možete ih čak konfigurirati da budu domaćin vašem poslužitelju; nginx docker kontejneri obično se koriste kao web poslužitelji. Osim toga, Docker možete koristiti na nekoliko drugih načina:

  • Jednostavno pokrenite Linux distribucije
  • Postavite web poslužitelj za potrebe učenja ili testiranja
  • Prijenosne aplikacije za implementaciju
  • Skupite aplikaciju u jednu slikovnu datoteku
  • Pojednostavljeni CI/CD cjevovod

Morate se upoznati s najboljim praksama za korištenje Dockera s podsustavom Windows za Linux 2, baš kao što biste to učinili s bilo kojom drugom platformom ili alatom. Kao razvojni programer, iz osobnog iskustva mogu reći da ćete postati mnogo produktivniji i učinkovitiji kada sljedeće savjete integrirate u svoj tijek rada.

1. Integrirajte VS kod s WSL 2

Visual Studio Code popularan je IDE koji je omiljen zbog svojih nevjerojatnih značajki, zajednice i proširenja. Kao programer, mogućnost korištenja Visual Studio Code za razvoj aplikacija na Windows platformi dok također je pokretanje tih aplikacija na Linux kernelu nevjerojatno povoljno i gotovo nevjerojatno značajka.

Kada integrirate VS Code u Windows podsustav za Linux, možete iskoristiti njegovu specijaliziranu Linux jezgru za poboljšanje kompatibilnosti s više platformi. Možete dodatno pojednostaviti svoj tijek rada korištenjem integriranog terminala unutar VS Code s WSL 2.

Do postavite VS kod s WSL 2 na Windows, možete konfigurirati WSL proširenje s VS Code Marketplacea i pokrenite stvari.

2. Koristite WSL 2 datotečni sustav

Za pravilno pokretanje vaših Docker spremnika, od vitalne je važnosti da se oslonite na datotečni sustav vaše distribucije WSL 2 i da ne ovisite u velikoj mjeri o izvornom Windows datotečnom sustavu. Kroz moje iskustvo rada s Docker spremnicima na WSL-u 2, otkrio sam da je bolje pohraniti vaše projektne datoteke unutar WSL-a.

3. Koristite izvorne Linux skripte

Mnogi kontejnerski projekti na kojima ćete raditi vjerojatno će imati skripte za automatizaciju na Linuxu. Obično se ove skripte prvo razvijaju za Linux, a Windows programeri nisu prioritet.

Uz WSL 2, cijeli vaš tim može koristiti iste skripte za automatizaciju Linuxa, a vi ne morate brinuti o održavanju skripti za automatizaciju kompatibilnih sa sustavom Windows za vaš tim.

4. Konfigurirajte BuildKit za poboljšanu sigurnost i izvedbu

BuildKit je open-source alat koji poboljšava tradicionalni Docker proces izgradnje u smislu performansi i sigurnosti; izravno je integriran s Dockerom, tako da ga ne morate zasebno instalirati.

Kada omogućite BuildKit prema zadanim postavkama osiguravate da se vaši spremnici izgrađuju pomoću alata BuildKit, što vam daje bolju sigurnost, konkurentnost, fleksibilnost i predmemoriranje.

Da biste omogućili BuildKit prema zadanim postavkama, trebali biste napraviti sljedeće promjene u konfiguracijskoj datoteci ~/.profile:

izvoz DOCKER_BUILDKIT=1.

5. Postavite ograničenja resursa

Kada integrirate WSL 2 pozadinu s Docker Desktopom, Dockeru dajete pristup svim vašim CPU resursima. Na taj način pomažete u poboljšanju performansi za spremnike koji imaju veliki resurs.

Međutim, u nekim slučajevima, spremnik može dodijeliti puno viška memorije, uzrokujući pad kritičnih OS procesa. Veća je vjerojatnost da ćete to doživjeti kada koristite spremnike baze podataka ili mikroservis za predmemoriju.

Srećom, možete konfigurirati Docker spremnike da ograniče memoriju sustava i korištenje CPU-a. Uvijek trebate biti oprezni prilikom konfiguriranja memorije sustava, čak i manja pogreška može imati značajne posljedice. Možete se obratiti na službena Docker dokumentacija za detaljniji vodič o ograničavanju memorije i CPU resursa koje troši Docker spremnik.

6. Oporavak predmemorirane memorije

Ako pokrećete Docker spremnik u WSL-u 2, njegova bi se memorija trebala osloboditi nakon što spremnik završi. Nažalost, kernel operativnog sustava nastoji zadržati podatke u predmemoriji; to znači da efektivna memorija koju vraća WSL 2 neće biti dovoljna.

Možete oporaviti svu memoriju koja se nepotrebno koristi kao predmemorija pokretanjem sljedeće naredbe putem root-a u WSL-u 2:

jeka 1 > /proc/sys/vm/drop_caches

Budite pametniji uz WSL 2

WSL 2 najbolja je značajka za programere temeljene na sustavu Windows, koja potpuno mijenja način na koji programeri koriste Docker. Programeri moraju razumjeti najbolje prakse za korištenje Dockera s WSL-om za poboljšanje performansi, sigurnosti i fleksibilnosti tijeka rada.