Docker je platforma pro vývoj, doručování a spouštění aplikací v izolovaných kontejnerech. Kontejnery Docker poskytují pohodlné a bezpečné prostředí pro nasazení aplikací kdekoli. Když vytváříte nebo spouštíte kontejnery Docker, možná budete muset znát TCP port, který je přiřazen vašemu kontejneru.
V tomto úplném tutoriálu vám řekneme, jak zjistit TCP port, na který je váš Docker kontejner připojen. Podíváme se na několik způsobů, jak tyto informace rychle najít.
Prvním způsobem je použití příkazu "docker ps", který zobrazuje seznam spuštěných kontejnerů. V důsledku spuštění příkazu uvidíte informace o spuštěných kontejnerech, včetně portů vázaných TCP. Pomocí vlajky "- a " získáte informace o všech kontejnerech, včetně zastavených.
Co je Docker a proč je to nutné?
Kontejnerizace má řadu výhod. Především umožňuje vývojářům, aby si nedělali starosti s různými závislostmi a konflikty, které mohou nastat při zavádění aplikace na různých serverech. Kontejnery Docker poskytují jednotnost a přenositelnost, díky čemuž je vývoj, testování a nasazení aplikací jednodušší a rychlejší.
Díky kontejnerizaci umožňuje Docker zabalit všechny komponenty aplikace dohromady do kontejneru a vytvořit tak přímo vývojové a testovací prostředí, které lze spustit kdekoli. Docker tak usnadňuje přenos a nasazení aplikací mezi různými prostředími, od místního počítače po cloudové servery.
Celkově Docker nabízí efektivnější využití zdrojů, rychlejší nasazení a škálování aplikací a usnadněnou podporu a aktualizaci aplikací.
Základy práce s Docker kontejnery
Zde je několik základních pojmů, které musíte znát při práci s Docker kontejnery:
Obrázky (Images): toto je výchozí bod pro vytváření kontejnerů. Obrázek obsahuje souborový systém a všechny potřebné závislosti pro spuštění aplikace. Obrázky jsou vytvořeny na základě Dockerfile, který obsahuje pokyny pro stavbu obrazu.
Kontejnery (Containers): jsou to kopie obrazů. Kontejnery se spouštějí z obrazu a představují izolované prostředí pro provoz aplikace. Kontejnery lze vytvořit, spustit, zastavit a odstranit pomocí Docker příkazů.
Sítě (Networks): je to mechanismus, který umožňuje kontejnerům interagovat mezi sebou a s vnějším světem. Docker podporuje různé typy sítí, včetně výchozích sítí a vlastních sítí.
Svazky (Volumes): je to způsob, jak ukládat a přijímat data mezi hostitelem a kontejnerem a mezi kontejnery. Svazky mohou být vytvořeny a použity k ukládání dat, a to i po zastavení a odstranění kontejnerů.
Registry (Registry): toto jsou úložiště obrázků Docker. Umožňují uživatelům sdílet a stahovat obrázky, aby je mohli používat ostatní.
Použití Docker kontejnerů umožňuje snadnější a škálovatelnější vývoj a nasazení aplikací. Díky znalosti základů práce s Docker kontejnery můžete snadno vytvářet a spouštět své vlastní kontejnery a také používat již hotové obrázky z Docker registrů.
Jak najít seznam kontejnerů v Docker
Chcete-li zjistit seznam kontejnerů spuštěných v Dockeru, můžete použít příkaz docker ps. Tento příkaz vám umožňuje získat informace o kontejnerech, jako jsou jejich jedinečné identifikátory (ID), jména, porty, stav atd.
Chcete-li provést příkaz docker ps, otevřete terminál nebo příkazový řádek a zadejte tento příkaz. V reakci na to obdržíte seznam všech spuštěných kontejnerů v Dockeru.
Pokud chcete vidět další informace o kontejnerech, můžete použít vlajky příkazu docker ps. Můžete například použít vlajku -a Zobrazit všechny kontejnery včetně zastavených.
Nyní víte, jak najít seznam kontejnerů v Dockeru a získat o nich informace.
Jak zjistit informace o konkrétním kontejneru
Pokud potřebujete získat informace o konkrétním kontejneru, Docker poskytuje několik příkazů, které vám umožní získat užitečná data o jeho konfiguraci a stavu. Podívejme se na některé z nich.
1. Chcete-li začít, musíte znát ID nebo název kontejneru. Můžete to udělat pomocí příkazu docker ps, který vám ukáže seznam aktivních kontejnerů.
2. Pokud znáte ID nebo název kontejneru, můžete k získání podrobných informací o něm použít příkaz docker inspect. Například příkaz docker inspect vám ukáže celý objekt JSON s informacemi o kontejneru.
3. Pokud potřebujete znát pouze název kontejneru, můžete použít příkaz docker inspect --format='>' . Ukáže vám pouze jméno kontejneru bez dalších informací.
4. Chcete-li zjistit IP adresu kontejneru, můžete použít příkaz docker inspect --format='>>>' . Zobrazí se vám pouze IP adresa kontejneru.
5. Pokud potřebujete znát použité Porty kontejneru, můžete použít příkaz docker inspect --format='>> - > <<(index $conf 0).HostPort>> >' . Zobrazí vám všechny použité Porty kontejneru a porty hostitele, které jim odpovídají.
Nyní máte několik užitečných příkazů a formátů, pomocí kterých můžete získat informace o konkrétním kontejneru. Použijte je, abyste se dozvěděli více o svých kontejnerech a přizpůsobili je vašim potřebám.
Hledání portu pro připojení TCP
Když spustíte kontejner Docker a chcete vědět, na kterém portu se služba nachází, můžete k nalezení těchto informací použít různé metody.
Jedním ze způsobů je nalezení portu v dokumentaci nebo souboru README obrazu Docker. Vývojáři často poskytují informace o portech, které využívají jejich služby. V závislosti na obrázku najdete tyto informace v části "Port" nebo "exposed Ports".
Pokud chcete najít Port uvnitř kontejneru, můžete spustit příkaz docker exec Chcete-li provést příkaz uvnitř kontejneru. Můžete například spustit příkaz docker exec netstat -tuln Chcete-li zobrazit seznam otevřených portů v kontejneru.
Pokud všechny výše uvedené metody nefungují, můžete použít nástroj nmap pro skenování portů uvnitř kontejneru. Nainstalujte nástroj uvnitř kontejneru pomocí příkazu apt-get install nmap (pokud se používá obraz založený na Debianu nebo Ubuntu) nebo yum install nmap (pokud je použit obrázek založený na Red Hat nebo CentOS). Poté spusťte příkaz nmap localhost pro skenování otevřených portů.
V důsledku provádění těchto metod budete moci zjistit číslo portu pro připojení TCP a použít jej k připojení ke službě spuštěné v kontejneru Docker.
Další způsoby kontroly portů v Dockeru
Kromě standardních nástrojů pro kontrolu TCP portů v Dockeru existují další způsoby, které mohou být užitečné při manipulaci s kontejnery. Zvažte několik z nich:
- Příkaz docker port vám umožní zjistit, ke kterým portům na hostitelském systému jsou porty kontejneru připojeny. To může být užitečné, pokud potřebujete znát dostupné porty pro interakci s kontejnerem.
- Použití Docker Compose k definování a konfiguraci portů:
- Použití Docker Compose vám umožňuje identifikovat a nakonfigurovat porty pro všechny kontejnery ve vašem projektu. V souboru docker-compose.yml lze zadat porty, které chcete připojit ke každému kontejneru. To je užitečné, pokud pracujete s mnoha kontejnery a chcete centrálně spravovat porty.
- Použití kontejneru proxy:
- Vytvoření kontejneru proxy umožňuje řídit a přesměrovat provoz přes konkrétní port. Takový kontejner může být použit k přesměrování provozu na více kontejnerů běžících na různých portech nebo k převodu protokolů. To může být užitečné, pokud potřebujete přesměrovat provoz z jednoho portu na druhý ve vaší síti Docker.