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.
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.
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ý 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:
|_+_|
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?