Příkaz Docker Pull. Chcete-li nainstalovat Sonarr pomocí Dockeru, musíte nejprve získat nejnovější verzi kontejneru Sonarr z linuxserver Docker Hub. LinuxServer je úložiště Docker s několika kontejnery aplikací HTPC a domácích serverů. Sudo docker pull linuxserver/sonarr Vytáhněte připravený kontejner Sonarr docker pomocí výše uvedeného příkazu.
Co je reverzní proxy? Reverzní proxy je druh serveru, který je umístěn v přední části mnoha dalších serverů a předává požadavky klientů na příslušné servery. Odpověď ze serveru je pak také přijata a předávána proxy serverem klientovi.
Proč byste použili takové nastavení? Existuje pro to několik dobrých důvodů. Toto nastavení lze použít k nastavení nástroje pro vyrovnávání zatížení, ukládání do mezipaměti nebo k ochraně před útoky.
Nebudu zde zacházet do podrobností. Místo toho vám ukážu, jak můžete využít koncept reverzního proxy k nastavení více služeb na stejném serveru.
Pořiďte stejný obrázek jako ten, který jste viděli výše. Co můžete udělat, je spustit server Ngnix v kontejneru dockeru v režimu reverzního proxy. Další webové služby lze také provozovat ve vlastních příslušných kontejnerech.
Kontejner Nginx bude nakonfigurován tak, aby věděl, která webová služba běží v kterém kontejneru.
Je to dobrý způsob, jak ušetřit náklady na hostování každé služby na jiném serveru. Díky reverznímu proxy serveru můžete mít na stejném linuxovém serveru spuštěno více služeb.
Dovolte mi, abych vám ukázal, jak postupovat při konfiguraci výše uvedeného nastavení.
Pomocí těchto kroků můžete nainstalovat více kontejnerů webových aplikací spuštěných pod Nginx, přičemž každý samostatný kontejner odpovídá jeho vlastní příslušné doméně nebo subdoméně.
Nejprve se podívejme, co potřebujete, abyste mohli postupovat podle tohoto návodu.
Abyste mohli snadno začít s tímto výukovým programem, budete potřebovat následující znalosti. I tak se bez nich obejdete.
Linuxový systém/server. Linuxový server můžete snadno nasadit během několika minut pomocí cloudové služby Linode.Znalost příkazů a terminálu Linuxu.Základní znalost Dockeru.Měli byste mít na svém linuxovém serveru nainstalovány Docker a Docker Compose. Přečtěte si prosím našeho průvodce instalací Docker a Docker Compose na CentOS. Měli byste také vlastnit doménu (abyste mohli nastavit služby na subdoménách).V tutoriálu jsem jako příklad názvu domény použil doménu.com . Ujistěte se, že jste jej změnili podle svých vlastních domén nebo subdomén.
Kromě výše uvedeného se prosím přesvědčte také o následujících věcech:
Změňte záznamy DNS své domény
V panelu záznamů A/AAAA nebo CNAME vašeho poskytovatele názvu domény se ujistěte, že doména i subdomény (včetně www) směřují na IP adresu vašeho serveru.
Toto je příklad pro vaši referenci:
HostnameIP AddressTTLdomain.com172.105.50.178Default*172.105.50.178Defaultsub0.domain.com172.105.50.178Defaultsub1.domain.com172.105.50.178DefaultSwap space
Abyste se ujistili, že všechny vaše kontejnerové aplikace jsou v pohodě a po jejich nasazení vám nikdy nedojde paměť, musíte mít v systému potřebný odkládací prostor.
Swap můžete vždy upravit podle dostupné paměti RAM ve vašem systému. Odkládací prostor můžete rozhodnout na základě balíčku kontejnerů aplikací na jediném serveru a odhadu jejich kumulativního využití RAM.
Začněte nastavením reverzního proxy serveru nginx. Vytvořte adresář s názvem 'reverse-proxy' a přepněte se do něj:
Vytvořte soubor s názvem docker-compose.yml, otevřete jej ve svém oblíbeném textovém editoru založeném na terminálu, jako je Vim nebo Nano.
Pro reverzní proxy nginx budu používat obrázek jwilder/nginx-proxy. Zkopírujte a vložte následující do souboru docker-compose.yml:
Nyní si projdeme důležité části souboru pro vytvoření zprávy:
Deklarovali jste čtyři svazky, html, dhparam, vhost a certs. Jsou to trvalá data, která byste si určitě chtěli ponechat i poté, co byl kontejner mimo provoz. Soubor html & svazky vhost budou velmi důležité v příštím nasazení kontejneru Let's Encrypt. Jsou navrženy tak, aby spolupracovaly. Docker Socker je namontován uvnitř kontejneru pouze pro čtení. Ten je nezbytný pro reverzní proxy kontejner ke generování konfiguračních souborů nginx, detekci dalších kontejnerů se specifickou proměnnou prostředí. Zásada restartu je nastavena na vždy. Další možnosti zahrnují při selhání a bez zastavení. V tomto případě se vždy zdálo vhodnější. Porty 80 a 443 jsou vázány na hostitele pro http a https, resp.. Nakonec používá jinou síť, nikoli výchozí síť mostu. Použití uživatelem definované sítě je velmi důležité. To pomůže izolovat všechny kontejnery, které mají být proxy, spolu s povolením reverzního proxy kontejneru přeposílat klienty do jejich požadovaných/zamýšlených kontejnerů a také umožnit kontejnerům komunikovat mezi sebou (což není možné s výchozí mostovou sítí pokud není icc pro démona nastaveno na hodnotu true).Mějte na paměti, že YML je velmi náročný na karty a odsazení.
K tomu můžete použít obrázek kontejneru jrcs/letsencrypt-nginx-proxy-companion.
Do stejného souboru docker-compose.yml, který jste použili dříve, přidejte následující řádky:
V této definici služby:
Používáte přesně stejné objemy, jaké jste použili pro kontejner reverzního proxy. Sdílení svazků html a vhost je nezbytné, aby byla výzva ACME letsencrypt úspěšná. Tento kontejner vygeneruje certifikáty v /etc/nginx/certs v kontejneru. To je důvod, proč sdílíte tento svazek se svým reverzním proxy kontejnerem. Svazek dhparam bude obsahovat soubor dhparam. Zásuvka je připojena k detekci dalších kontejnerů se specifickou proměnnou prostředí. Zde jste definovali dvě proměnné prostředí. Proměnná NGINX_PROXY_CONTAINER ukazuje na reverzní proxy kontejner. Nastavte jej na název kontejneru. DEFAULT_EMAIL je e-mail, který bude použit při generování certifikátů pro každou doménu/subdoménu. Možnost Depend_on je nastavena tak, že tato služba nejprve čeká na spuštění reverzního proxy a teprve potom se spustí toto. Nakonec tento kontejner také sdílí stejnou síť. To je nezbytné, aby oba kontejnery mohly komunikovat.Jakmile jsou definice služby hotové, dokončete docker- vytvořte soubor s následujícími řádky:
Síť sítě je nastavena na externí, protože kontejnery proxy budou také muset používat tuto síť. A pokud ponecháme síť vytvořenou pomocí docker-compose, bude název sítě záviset na aktuálním adresáři. Tím se vytvoří podivně pojmenovaná síť.
Kromě toho budou muset ostatní kontejnery nastavit tuto síť tak, aby byla externí, jinak budou muset tyto složené soubory také sídlit ve stejném adresáři, z čehož žádný není ideální.
Proto vytvořte síť pomocí
Následuje celý obsah souboru docker-compose.yml.
Nakonec můžete tyto dva kontejnery (Ngnix a Let's Encrypt) nasadit pomocí následujícího příkazu:
Kontejner, který bude sloužit frontendu, bude muset definovat dvě proměnné prostředí.
VIRTUAL_HOST: pro generování reverzní konfigurace proxy
LETSENCRYPT_HOST: pro generování potřebných certifikátů
Ujistěte se, že máte správné hodnoty pro tyto dvě proměnné. Můžete spustit nginx-dummy image s reverzním proxy takto:
Pokud nyní přejdete na svou subdoménu použitou v předchozím příkazu, měli byste vidět zprávu ze serveru Ngnix.
Jakmile jej úspěšně otestujete, můžete běžící kontejner dockeru zastavit:
Můžete také zastavit reverzní proxy Ngnix, pokud jej nebudete používat:
Proces nastavení dalších kontejnerů, aby mohly být proxy, je VELMI jednoduchý.
Za chvíli to ukážu se dvěma instancemi nasazení Nextcloud. Nejprve vám řeknu, co tady děláte.
Nevázat na žádný portKontejner může vynechat port, který obsluhuje frontend. Reverzní proxy kontejner to automaticky zjistí.
Pokud kontejner reverzního proxy nezjistí port, můžete definovat jinou proměnnou prostředí s názvem VIRTUAL_PORT s portem obsluhujícím frontend nebo kteroukoli službu, kterou chcete získat proxy, například '80' nebo '7765'.
Nastavení Let's Encrypt e-mailu specifického pro kontejnerProměnnou DEFAULT_EMAIL můžete přepsat a nastavit konkrétní e-mailovou adresu pro certifikát(y) domény/subdomény konkrétního kontejneru/webové služby nastavením e-mailu na proměnnou prostředí LETSENCRYPT_EMAIL. Funguje to na základě jednotlivých kontejnerů.
Nyní, když znáte všechny tyto věci, dovolte mi ukázat vám příkaz, který nasazuje instanci Nextcloud, která bude připojena pomocí proxy kontejneru nginx a bude mít povoleno TLS (SSL/HTTPS).
Toto NENÍ IDEÁLNÍ nasazení. Následující příkaz se používá pouze pro demonstrativní účely.V příkladu jste použili stejnou síť jako kontejnery reverzního proxy, definovali jste dvě proměnné prostředí s příslušnými subdoménami (nastavte odpovídajícím způsobem svou). Po několika minutách byste měli vidět běžící Nextcloud na sub0.domain.com. Pro ověření otevřete v prohlížeči.
Můžete nasadit další instanci Nextcloud, jako je tato, na jiné subdoméně, jako je následující:
Nyní byste měli vidět jinou instanci Nextcloud běžící na jiné subdoméně na stejném serveru.
Touto metodou můžete nasadit různé webové aplikace na stejný server obsluhovaný v různých subdoménách, což je docela praktické.
Nyní, když máte toto nastavení, můžete pokračovat a použít je ve skutečných nasazeních s následujícími příklady:
Chcete-li více článků, jako je tento, přihlaste se k odběru našeho zpravodaje nebo zvažte, zda se stát členem. V případě jakýchkoliv dotazů neváhejte napsat komentář níže.
Staňte se ZDARMA členemStaňte se členem, abyste dostávali pravidelný linuxový zpravodaj (2-4krát měsíčně) a měli přístup k obsahu pouze pro členy.
Zapojte se do konverzace.
Komentáře jsou uzavřeny.
PREV: Jak svázat ldap s cizím účtem důvěryhodné domény pro autentizaci aplikace