GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak nainstalovat a používat Docker na Ubuntu (ve skutečném světě)

Pokud hledáte informace o tom, jak nainstalovat Docker na Ubuntu, jste na správném místě. Nejen to, ale jako bonus vás tento tutoriál také naučí, jak procházet základními příkazy Dockeru pro spouštění a správu kontejnerů.

Pomocí užitečných funkcí Visual Studio (VS) Code se také naučíte, jak posílit své dovednosti SSH. Začněme!

Související: Chlap s Windows ve světě Linuxu:VS kód a vzdálené SSH

Předpoklady

Pokud chcete v tomto tutoriálu postupovat krok za krokem, ujistěte se, že máte následující:

  1. Nová instalace Ubuntu Server LTS s povoleným SSH (Tato příručka bude používat Ubuntu Server LTS 20.04.1)
  2. Počítač se systémem Windows s VSCode nainstalován (tato příručka bude používat Visual Studio Code 1.52.1)
  3. Nainstalováno oficiální rozšíření SSH VSCode a připojeni k vaší instalaci Ubuntu Server LTS

Instalace Dockeru na Ubuntu

Začněme nejprve instalací Dockeru na Ubuntu. V tomto okamžiku výukový program předpokládá, že jste na místním počítači se systémem Windows s otevřeným kódem VS a jste připojeni k serveru Ubuntu přes SSH. Naučte se, jak nastavit toto praktické prostředí v nejnovějším článku o používání VS Code a SSH .

V níže uvedeném příkladu je VSCode vzdáleně připojen k Ubuntu pomocí domova složka (v tomto případě /home/homelab ) otevřen jako pracovní prostor:

Vlastní proces instalace Dockeru na Ubuntu Server je vzdálen dva příkazy. Ubuntu zpřístupňuje Docker jako možnost instalace ve výchozím správci balíčků, který se dodává s Ubuntu známým jako apt .

V okně SSH terminálu VS Code spusťte následující dva příkazy k instalaci Dockeru:

sudo apt update -y
sudo apt install docker.io -y

Během instalace serveru Ubuntu vám mohla být nabídnuta možnost nainstalovat Docker jako blesk. Pokud jste tak učinili, nejprve odstraňte balíček snap spuštěním sudo snap remove docker

Instalaci dockeru můžete sledovat v animaci níže:

Ubuntu je dost hezké na to, aby vám službu automaticky povolilo a nastavilo, aby se spustila při spouštění, takže jste připraveni začít používat Docker!

Vytvoření a spuštění kontejneru Docker na Ubuntu

Nyní, když máte nainstalovaný Docker, co s ním můžete dělat? Začněme vytvořením kontejneru Docker. Tento tutoriál nastaví statický webový server jako dobrý příklad kontejneru Docker. V této sekci:

  • Nastavte nový kontejner z Docker Hub Image Repository pro spuštění služby HTTP
  • Pomocí mapování portů namapujte port HTTP v kontejneru na hostitele Ubuntu
  • Nastavte Bind Mounts pro mapování důležitých dat z kontejneru na vašeho hostitele Ubuntu
  • Nastavte pro svůj kontejner trvalost prostřednictvím restartování

Pokud vám některý z výše uvedených kroků připadá matoucí, nemějte obavy, každý krok probereme, jeden po druhém, abychom vám pomohli celý proces pochopit.

Stažení obrázku Docker

První otázka, kterou si musíte položit, je, odkud bude tento kontejner pocházet? Pojďme se podívat na Docker Hub.

Velká část Dockeru rozumí úložišti obrázků . Spíše než aby byly služby distribuovány jako balíčky, jsou služby v Dockeru distribuovány jako Docker Images.

Obrázek Dockeru je snímek softwaru, který chce vydavatel distribuovat, a celého systému evidence! Je to analogické s vytvářením bitové kopie .wim systému Windows.

Toto zachycení souborového systému dělá Docker tak populární:software je zachycen spolu s celým operačním prostředím. Tím se eliminují problémy způsobené rozdíly mezi serverovými prostředími.

Jedním z nejoblíbenějších úložišť (a výchozím) pro obrázky je Docker Hub také známý jako oficiální úložiště Docker. Úložiště obrázků je místo, kde si můžete stáhnout tisíce předem vytvořených obrázků Docker, které lze spustit jako kontejnery.

Protože tento tutoriál nastavuje statický webový server, musíte si stáhnout obraz webového serveru. Dva nejoblíbenější webové servery jsou Apache httpd a Nginx ale abychom to trochu změnili a potenciálně vám představili nový webový server, použijeme jeden s názvem Caddy .

Caddy je webový server známý svou jednoduchostí. Mnoho platných konfigurací serveru lze nasadit pomocí jediného řádku v souboru. Jednoduché je dobré a je to také dobrý základní příklad.

  1. Nejprve budete muset najít obrázek Docker. Na počítači se systémem Windows přejděte na https://hub.docker.com .
  2. Vyhledejte caddy v levém horním rohu stránky. Měla by se zobrazit stránka podobná následující:

Výhodou (a nevýhodou) Docker Hub je, že kdokoli, dokonce i vy, můžete vytvářet a nahrávat obrázky Docker na web.

Musíte být opatrní, abyste zajistili, že obrázek, který vyberete, pochází z důvěryhodného zdroje. Kdokoli může umístit malware do obrázku, pokud se tak rozhodne a nahraje svou verzi do Docker Hub.

3. Poznamenejte si název obrázku. Na výše uvedeném snímku obrazovky je jméno caddy přesně tak. Tento název budete potřebovat k zadání názvu obrázku v dalších krocích.

Spuštění kontejneru s Dockerem na Ubuntu

Jakmile znáte název obrázku, který si chcete stáhnout, je čas si jej stáhnout a vytvořit z něj kontejner.

Spuštění kontejneru z obrázku vyžaduje jeden příkaz. Ve svém terminálu SSH připojeném k serveru Ubuntu spusťte následující docker run příkaz.

Níže uvedený příkaz zkontroluje caddy obrázek na místním počítači. Pokud neexistuje, stáhne obrázek z Docker Hub, vytvoří kontejner a spustí jej. Níže uvedený příkaz používá -p přepněte a namapujte naslouchací port 80 serveru Ubuntu na port 80 kontejneru. Tato funkce se nazývá mapování portů.

sudo docker run -p 80:80 caddy

Většina obrázků Docker Hub se řídí konvencí pojmenování /. Obrázky označené jako „oficiální“ společností Docker však nemají před sebou (jako caddy výše).

Spuštění výše uvedených příkazových výstupů jako je následující, přičemž informace o nosiči se zobrazí přímo v terminálu:

Můžete si všimnout, že téměř všechny příkazy dockeru mají předponu sudo , abyste vynutili spuštění příkazů jako správce. Ve výchozím nastavení je služba docker spuštěna jako root a všechny změny, které provedete v kontejnerech nebo obrázcích, musíte provést jako správce.

A… jste připraveni! To je vše. Nejste rádi, že jste si na Ubuntu nainstalovali Docker?

Nyní přejděte na http:// ve svém počítači se systémem Windows a měla by se zobrazit vstupní stránka pro Caddy. Můžete to vidět níže (IP této příručky je nahrazena http://homelab-docker ):

caddy kontejner nyní běží, ale možná jste si všimli problému. Spuštění tohoto docker příkaz převezme váš příkazový řádek. Nemůžete spouštět žádné další příkazy, a pokud relace skončí, běžící kontejner se zastaví. Pojďme tento problém vyřešit spuštěním kontejneru na pozadí (známé také jako odpojení kontejneru).

Spouštění kontejnerů Docker na pozadí

Nyní máte spuštěný kontejner, ale váš příkazový řádek je zavěšen. nemůžete dělat nic jiného. Potřebujete lepší způsob spouštění kontejneru tak, že jej spustíte na pozadí jako službu. Chcete-li to provést:

  1. Zastavte aktuální kontejner stisknutím control+c v příkazovém řádku. To by vám mělo vrátit příkazový řádek.
  2. Nyní spusťte znovu stejný příkaz jako předchozí pouze s -d parametr tentokrát, jak je uvedeno níže. Uvidíte, že Docker vrátí ID kontejneru a předá vám příkazový řádek.
sudo docker run -d -p 80:80 caddy

Správa kontejnerů na pozadí pomocí příkazů Docker

Jakmile budete mít spuštěn jeden nebo více dockerů na pozadí, budete je muset nějak spravovat. Docker vám k tomu poskytuje několik různých příkazů pomocí docker container příkazy.

  • sudo docker container list -a :Uvádí všechny kontejnery (běžící i zastavené) a jejich stav
  • sudo docker container stop <name> :zastavit ukotvitelný kontejner podle jména (nebo podle ID)
  • sudo docker container start <name> :spusťte ukotvitelný kontejner podle jména (nebo podle ID)
  • sudo docker container prune :zničit a odstranit všechny zastavené nádoby

Všechny výše uvedené příkazy použité v kontextu můžete vidět na níže uvedeném snímku obrazovky:

Existuje mnoho dalších příkazů kontejneru dockeru k zobrazení, změně, kontrole nebo dokonce vzdálenému přístupu do kontejnerů na vašem serveru. Všechny je můžete zobrazit spuštěním sudo docker container --help .

I když jste nyní nasadili webový server v kontejneru běžícím na pozadí, stále nemáte žádný způsob, jak hostit svůj vlastní obsah. Jak je, Caddy pouze zobrazuje výchozí webovou stránku.

Pojďme se nyní podívat na to, jak můžete použít obrázky Docker s konceptem zvaným bind mounts k nasazení kontejnerů se smysluplnými daty.

Ukládání dat kontejneru pomocí Bind Mounts

Docker pracuje na konceptu obrázků (a kontejnerů, které generují) jako nepoužitelných nebo přechodných . Pokud dojde k aktualizaci softwaru Caddy, službu neaktualizujete, vyhodíte celé miminko i s vaničkou a použijete zcela nový obrázek od začátku.

Výhody likvidace a obnovy kontejnerů, jako je tato, jsou významné. Nestabilita v softwaru se časem zavádí neustálou aktualizací (potenciálně) let starého softwaru. Díky použití nového obrazu pokaždé vám Docker poskytuje stabilní, spolehlivou a (pravděpodobně) testovanou základnu při každé aktualizaci.

Tento koncept je ekvivalentní použití nové instalace systému Windows při každé aktualizaci aplikačního softwaru systému Windows. Není to zábavný nápad pro Windows, ale extrémně použitelný v Dockeru.

Metodika vyhazování má však jasný problém. Nechcete, aby byla vyhozena základní data, když se vaše současná služba ztratí. Docker tento problém řeší pomocí konceptu zvaného bind mounts .

Pojďme nyní prozkoumat, jak vytvořit spojovací držák pro kontejner.

Vytvoření struktury složek a vyčištění

Než budete moci použít připojení připojení, musíte vytvořit umístění pro uložení těchto dat. Tento tutoriál vytvoří složku ve vašem domovském adresáři. Chcete-li tak učinit v kódu VS, když jste stále připojeni k serveru Ubuntu:

  1. Klikněte pravým tlačítkem do prázdné oblasti Explorer VS Code panelu a zvolte nová složka.

2. Pojmenujte novou složku kontejnery/caddy/soubory.

Názvy složek jsou na vás, pokud jsou správně definovány v nadcházejícím příkazu dockeru. Pomocí dopředného lomítka to VS Code interpretuje jako vytvoření tří složek. soubory složka je podadresářem caddy a caddy je podadresář kontejnerů. Nemusíte používat tuto strukturu složek, ale tato struktura dává větší smysl, když máte na stejném serveru více kontejnerů.

Pokud jste tak neučinili dříve, zastavte a odstraňte všechny kontejnery, které jste vytvořili dříve, pomocí následujícího:

# stop and remove ALL currently running containers.
# The $(sudo docker ps -q) dynamically grabs all running container IDs
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

Tento příkaz můžete vidět na níže uvedeném snímku obrazovky:

Rozmístění kontejneru Caddy s držáky na vázání

Nyní máte strukturu složek postavenou na serveru Ubuntu. Je čas vytvořit kontejner Caddy s držáky na vazbu.

  1. Než se dostanete příliš daleko, nejprve zjistěte, kde kontejner, se kterým pracujete, uchovává trvalá data. Toto umístění se bude lišit v závislosti na tom, kdo vytvořil obrázek Docker a k jakému účelu slouží.

Nejlepší možností, jak zjistit, kde jsou uložena trvalá data, je zkontrolovat dokumentaci v Docker Hub pro příslušný obrázek. Pro Caddy najdete dokumentaci zde :

2. Spusťte kontejner pomocí níže uvedeného příkazu. the -v ~/containers/caddy/files:/usr/share/caddy parametr mapuje cestu před dvojtečkou (~/containers/caddy/files ) do složky uvnitř kontejneru (/usr/share/caddy ). Funguje to velmi podobně jako příkaz mapování portů:Kromě toho, že mapujete složku místo portu. Tento typ příkazu se nazývá Bind Mount .

# bind a folder on the host (the path before the colon) to
# /usr/share/caddy inside the container
sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy caddy

tilda (~ ) ve výše uvedeném kódu odkazuje na domovskou složku. Pro tento článek je to ekvivalentní /home/homelab .

3. Otevřete prohlížeč a přejděte zpět na http adresu vašeho serveru. Všimnete si, že server nyní obsluhuje 404 strana. To se očekává, protože aktuálně nemáte index.html soubor v ~/containers/caddy/files .

4. Vytvořte index.html soubor v ~/containers/caddy/files na serveru Ubuntu v okně VS Code Explorer, které vypadá takto:

<body><h2>hello world!</h2></body>

5. Přejděte na adresu HTTP svého serveru a potvrďte, že kontejner nyní obsluhuje váš nový index.html stránku.

Vše výše uvedené můžete vidět v následující animaci:

Na rozdíl od příkazů správy dockeru jsou soubory, které vytváříte (např. index.html ) nevyžadují administrátorská práva. Je to proto, že vlastníte obsah, který server caddy poskytuje, protože je ve vaší domovské složce.

Ověření připojení Bind

Vynikající! Nejen, že používáte zcela nový kontejner Docker, ale tento kontejner obsluhuje obsah uložený lokálně ve vaší domovské složce! Můžete to dokázat spuštěním následujícího:

  1. Zastavte a vyjměte běžící nádobu. Tento krok zcela odstraní vše včetně tohoto souboru index.html, pokud jste nepoužívali připojení.
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

2. Vytvořte zcela nový kontejner.

sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy caddy

3. Ověřte, že nový kontejner stále obsluhuje soubor index.html na http://<your server> adresu.

Vytváření trvalých kontejnerů dockeru

Kontejner není tak užitečný, pokud se zastaví, když se server restartuje. Ve výchozím nastavení se to stane, pokud to neuděláte. Abychom tomu zabránili, vygenerujeme znovu nový kontejner nosiče, ale tentokrát se restartuje, když se restartuje hostitel Dockeru, v tomto případě Ubuntu.

  1. Zastavte a odstraňte všechny běžící kontejnery.
# stop and remove ALL currently running containers
sudo docker container stop $(sudo docker ps -q)
sudo docker container prune

2. Restartujte kontejner nosiče pomocí --restart always parametr, chcete-li nastavit tento nový kontejner tak, aby začínal s hostitelem při restartu. Pomocí --restart always příznak na místě, váš kontejner se nyní chová jako správná služba:spouští se automaticky při bootování.

sudo docker run -d -p 80:80 -v ~/containers/caddy/files:/usr/share/caddy --restart always caddy

3. Restartujte server.

4. Nyní ověřte, že se objevil nový kontejner a stále obsluhuje soubor index.html na http://<your server> adresu.

Níže můžete vidět následující použité příkazy:

Jdeme dál

V této fázi byste měli mít funkční prostředí Docker a základní znalosti obrázků a kontejnerů. Můžete táhnout, spouštět, zastavovat a provádět základní správu vašich kontejnerů. Úspěšně jste také vytvořili běžící kontejner webové služby pomocí připojení připojení a mapování portů.

V souvislosti s Dockerem je stále co probírat:Zůstaňte naladěni na tento prostor, protože další článek se bude věnovat pokročilé správě dockerů pomocí Docker Compose.


Docker
  1. Jak nainstalovat a používat Docker v Ubuntu 20.04

  2. Jak nainstalovat a používat Docker Compose na CentOS

  3. Jak nainstalovat Docker a spustit kontejnery Docker v Ubuntu

  1. Jak nainstalovat a používat Docker na Ubuntu 20.04

  2. Jak nainstalovat a používat Wine na Ubuntu 20.04

  3. Jak nainstalovat a používat Docker na Ubuntu 18.04

  1. Jak nainstalovat a používat Docker Compose na Ubuntu 18.04

  2. Jak nainstalovat a používat FFmpeg na Ubuntu 18.04

  3. Jak nainstalovat a používat Wine na Ubuntu 18.04