Ako spustiť aplikáciu .NET na Dockeri


Docker je kontajnerizačná služba, ktorá sa používa na spúšťanie aplikácií v izolovaných prostrediach so všetkými potrebnými závislosťami a kódom na spustenie. Môžete spúšťať všetky druhy aplikácií vrátane programov založených na .NET, ktoré používajú runtime obrazy poskytované spoločnosťou Microsoft.

Dockerizácia .NET

Spoločnosť Microsoft poskytuje preddefinované základné obrazy pre spustenie aplikácií .NET. Nebudete musieť spravovať inštaláciu .NET runtime alebo SDK vo vašom kontajneri Docker, pretože môžete jednoducho rozšíriť zo základného obrazu Microsoftu na verziu .NET, ktorú vaša aplikácia používa.

Microsoft .NET Core



Pokiaľ neplánujete nasadiť Windows kontajnery na Windows server, budete musieť použiť .NET Core alebo .NET 5. Starší runtime .NET Framework nie je multiplatformový a nebude fungovať na kontajneroch založených na Linuxe.

Ak nemáte na svojom vývojovom počítači nainštalovaný Docker, na prístup k CLI si budete musieť nainštalovať Docker Desktop. Ak používate WSL v systéme Windows, odporúčame vám povoliť modul založený na WSL 2, ktorý poskytuje lepší výkon.

Ak používate WSL v systéme Windows, povoľte modul založený na WSL 2

Aby sme veci otestovali, vytvoríme novú aplikáciu ASP.NET API. Rovnaký všeobecný postup platí pre akýkoľvek typ aplikácie, pretože všetko, čo Docker robí, je vytváranie zakaždým, keď zostavuje kontajner a spúšťa aplikáciu pomocou príkazu vstupného bodu.

Vytvorte novú aplikáciu ASP.NET API

Vytvorte nový súbor s názvom |_+_| v koreňovom adresári vášho projektu, kde sa nachádza vaše riešenie. Prilepte nasledujúcu konfiguráciu:

|_+_|

Tento súbor Dockerfile stiahne obraz .NET Core SDK na vytvorenie. Skopírujte |_+_| znova a obnovte, potom skopírujte všetko ostatné a vytvorte zostavu. Potom vytvorte nový obraz z obrazu .NET Runtime a skopírujte artefakty zostavy.

Nakoniec, vstupný bod je tu definovaný ako |_+_|. Tým sa spustí webový server ASP.NET, aj keď možno budete musieť zmeniť parametre aplikácie alebo zadať úplne iný príkaz vstupného bodu.

Môžete skúsiť spustiť kontajner pomocou |_+_| a odovzdať ho v ID kontajnera zostavy:

|_+_|

Spustite svoj kontajner pomocou kontajnera spustenia docker a odovzdajte ho v ID kontajnera zostavy

Pre aplikáciu ASP.NET budete musieť otvoriť porty namapovaním portu na hostiteľovi na port na kontajneri:

|_+_|

Viac informácií si môžete prečítať v našom sprievodcovi prácou s Docker a Dockerfiles.

Co si myslis?