vshosting~

Většina návodů pro dockerizaci aplikací, které naleznete na internetu, je určena pro specifický jazyk a prostředí. My se ale budeme věnovat obecným postupům určeným pro jakýkoliv typ aplikace a ukážeme vám, jak je možné dosáhnout jejich provozu v Docker kontejneru.

Výběr base image

Pro bezproblémový provoz a následné jednoduché úpravy a upgrady je vhodné vybrat co nejideálnější (a autorem dobře podporovaný) base image. Vzhledem k tomu, že na Docker Hub může nahrávat image naprosto kdokoliv, je dobré vybraný image důkladně prozkoumat a ověřit si, zda neobsahuje nějaký škodlivý software, nebo například staré verze knihoven s bezpečnostními problémy. 

Dobrou volbou pro začátek jsou image označené jako „Docker certified“, které poskytují určitou formu garance, že image je v pořádku a pravidelně aktualizovaný. Příkladem pro takový image je PHP nebo Node.js.

Dále můžeme také doporučit sbírku od firmy Bitnami, která obsahuje spoustu předpřipravených image aplikací a vývojových prostředí.

Doinstalování dalšího software

Podle toho, jaký image jsme si pro svůj projekt vybrali, můžeme provést instalaci dalšího software, tak, abychom splnili všechny předpoklady pro bezproblémový provoz aplikace.

Nejlepším řešením je použít balíčkovací systém distribuce, na které je image založen (obvykle Ubuntu/Debian, Alpine Linux nebo CentOS). Je také velmi důležité udržovat seznam nainstalovaného softwaru co nejužší, například neinstalovat do kontejneru textové editory, kompilátory a jiné nástroje pro vývoj.

Vlastní soubory v Docker image

Do výsledného image budeme také chtít přidat vlastní soubory. Ať už konfigurace, přímo zdrojové kódy nebo binární soubory z aplikace. V Dockerfile se k tomu používají příkazy ADD nebo COPY, který je transparentnější, ale neumožňuje některé pokročilejší funkce, jako je například rozbalení archivu do image.

Definice oprávnění

Ačkoliv je to ta nejjednodušší cesta, vyhněte se spouštění aplikace v kontejneru za uživatele root, přináší to mnohá bezpečnostní rizika a zesiluje možnost úniku z kontejneru v případě kompromitace aplikace nebo po využití nějaké bezpečnostní chyby v softwaru třetích stran, které využíváte.

Definice portů služby

Pokud vaše aplikace nepoužívá uživatele root, případně nemá zvýšené capabilities (CAP_NET_ADMIN), není možné používat tzv. privileged ports. (1-1024). To však v Dockeru není nutné. Použijte jakýkoliv vyšší port (např. 8080 a 8443 místo 80/443 u webserveru) a proveďte mapování portu prostřednictvím parametrů Dockeru.

Spuštění aplikace v kontejneru

Jakkoliv je jednoduché spouštět přímo binární soubor vaší aplikace (nebo web serveru, Node.js, apod.), mnohem sofistikovanější cestou je vytvořit si vlastní tzv. entrypoint – tedy skript, který provede úvodní konfiguraci aplikace, může reagovat na proměnné prostředí apod. Dobrý příklad tohoto řešení můžeme najít například v oficiálním image PostgreSQL.

Metody konfigurace

Velká většina aplikaci vyžaduje pro správné spuštění správnou konfiguraci. Je samozřejmě možné použít přímo konfigurační soubor (například v mountovaném adresáři zvenku kontejneru), ale ve spoustě případů je lepší použít předem připravený entrypoint skript, který nám vhodnou konfiguraci při spuštění připraví pomocí template a proměnných prostředí kontejneru.

Aplikační data

Vyhněte se ukládání dat na filesystém kontejneru, ve standardní konfiguraci dojde po restartu kontejneru k jejich smazání. Využijte bind mounts (adresář vně kontejneru), nebo mounted volume.

Stejně tak je nutné vyřešit ukládání/odesílání logů. Nejvhodnější je samozřejmě použití centralizovaného logování pro všechny vaše aplikace (ELK stack), dobrou službu však odvede i obyčejný remote syslog.

Co dál?

Vždy je co zlepšovat. Nad rámec tohoto článku je možné se zamyslet nad různými možnosti configuration managementu, ELK stacku pro logování, sbírání aplikačních a systémových metrik přes Prometheus a možnosti dosažení load balancingu a high-availability pro naši aplikaci s použitím Kubernetes – které vám ve vshosting~ rádi postavíme přímo na míru vašemu projektu 🙂

Během 17 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon



    Nebo nás kontaktujte napřímo

    +420 246 035 835 V provozu 24/7
    konzultace@vshosting.cz
    Zkopírovat
    Obratem se vám ozveme
    PŘIDEJTE SE K ÚSPĚŠNÝM FIRMÁM
    Ušetřete si čas a napište si o nezávazný audit vašeho technického řešení zdarma.
    Ušetřete si čas a napište si o nezávazný audit vašeho technického řešení zdarma.
    PŘIDEJTE SE K ÚSPĚŠNÝM FIRMÁM
    NÁVRH INFRASTRUKTURY ZDARMA
    Nechte si od našich expertů ZCELA ZDARMA A NEZÁVAZNĚ navrhnout serverovou infrastrukturu s kompletní správou. Stačí zanechat svůj e-mail.
    Nechte si od našich expertů ZCELA ZDARMA A NEZÁVAZNĚ navrhnout serverovou infrastrukturu s kompletní správou. Stačí zanechat svůj e-mail.
    NÁVRH INFRASTRUKTURY ZDARMA
    AKCE NA HOSTING JEN DO KONCE MĚSÍCE
    Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
    Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
    AKCE NA HOSTING JEN DO KONCE MĚSÍCE
    BEZPLATNÁ KONZULTACE a návrh infrastruktury
    Nepropásněte šanci na konzultaci i návrh infrastruktury ZDARMA. Stačí zanechat e-mail.
    Nepropásněte šanci na konzultaci i návrh infrastruktury ZDARMA. Stačí zanechat e-mail.
    BEZPLATNÁ KONZULTACE a návrh infrastruktury
    FREE CONSULTATION and infrastructure design
    Don’t miss out on getting a consultation and infrastructure design for FREE. Just leave your email below.
    Don’t miss out on getting a consultation and infrastructure design for FREE. Just leave your email below.
    FREE CONSULTATION and infrastructure design
    TENTO WEBINÁŘ JIŽ PROBĚHL

    Chcete dostat zprávu o další webináři? 

    Zanechte svůj e-mail.

    TENTO WEBINÁŘ JIŽ PROBĚHL
    AKCE NA HOSTING JEN DO KONCE MĚSÍCE
    Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
    Managed server na míru a o 20 % levněji! Zanechte NEZÁVAZNĚ e-mail a nepropásněte šanci na slevu.
    AKCE NA HOSTING JEN DO KONCE MĚSÍCE
    Pouze do konce měsíce!
    NENECHTE SI UTÉCT MIMOŘÁDNOU AKCI
    Nechte si zcela nezávazně poslat poukaz na návrh Kubernetes řešení na míru.
    Pouze do konce měsíce!
    NENECHTE SI UTÉCT MIMOŘÁDNOU AKCI
    Nechte si zcela nezávazně poslat poukaz na návrh Kubernetes řešení na míru.
    Dozvěděli jste se vše, co vás zajímalo?
    Pojďme se pobavit o privátním cloudu na hardwaru HPE. Stačí nám na sebe zanechat kontakt.
    Zajímá Vás VMware privátní cloud na špičkovém hardwaru HPE?
    Zanechte nám kontakt a můžeme se o něm pobavit více.
    JAK PŘIPRAVIT E-SHOP NA VÁNOČNÍ SEZÓNU

    Zveme vás na online webinář
    Jak připravit e-shop na vánoční sezónu s Ondřejem Flídrem, seniorním infrastrukturním administrátorem vshostingu.

    Kdy: 28. 7. 2022 v 11 hodin
    Kde: Online
    Za kolik: Zdarma

    WEBINÁŘ
    JAK PŘIPRAVIT E-SHOP NA VÁNOČNÍ SEZÓNU
    WEBINÁŘ
    Jsme největší experti na managed služby na trhu
    Ušetřete si čas, napište si o nezávazný audit vašeho technického řešení zdarma nebo se jen s námi pobavte o možnostech.
    Ušetřete si čas, napište si o nezávazný audit vašeho technického řešení zdarma nebo se jen s námi pobavte o možnostech.
    Jsme největší experti na managed služby na trhu