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

Začínáme s předpřipravenými obrázky Docker

Obrázky jsou základní součástí dockeru. V této příručce probereme, co jsou docker image, jak je vytvářet, jak je spravovat a jak je používat.

Začněme.

Předpoklady

  • Než začnete používat obrazy dockeru, musíte do systému nainstalovat docker.
  • Tato příručka používá Ubuntu, ale kroky by měly být podobné pro ostatní distribuce.
  • Uživatelský účet s oprávněními root.

Co byste měli vědět?

Než začnete pracovat s obrázky dockeru, je důležité, abyste věděli, co to je.

Obrázky dockeru jsou základní součásti dockeru. Docker používá obrázky k vytváření kontejnerů. Obrázky jsou v podstatě šablony, které obsahují všechny informace nezbytné k vytvoření kontejneru, jako je kód, knihovny a runtime.

Ukotvitelný kontejner je runtime instance obrázku. Obsahuje vše, co obrázek obsahuje, plus veškeré změny nebo doplňky, které provedete za běhu kontejneru. Pokud například do svého systému nainstalujete novou aplikaci, nainstaluje se nová aplikace do vašeho kontejneru.

Správa obrázků pomocí rozhraní CLI

Správa obrazů pomocí rozhraní Docker CLI je pro administrátory Dockeru nutností. Docker CLI je výkonný nástroj, který vám poskytuje úplnou kontrolu nad obrázky a kontejnery. V této části se dozvíte, jak používat Docker CLI ke správě obrázků.

1. Spusťte níže uvedený příkaz a ujistěte se, že Docker běží.

sudo systemctl status docker

2. Pokud Docker neběží, spusťte jej níže uvedeným příkazem.

sudo systemctl start docker

3. Přidejte svůj uživatelský účet do skupiny dockerů. Aby se změny projevily, odhlaste se a znovu přihlaste.

sudo usermod -aG docker $(whoami)

4. Pokud spustíte příkaz docker image, zobrazí se seznam všech možností dostupných pro příkaz docker image.

docker image

Jak je ukázáno níže, příkaz docker image má mnoho možností, ale některé z nejběžněji používaných jsou:

  • ls :Seznam obrázků ve vašem systému.
  • vytáhnout :Vytáhněte obrázek z registru.
  • tlačit :Odeslat obrázek do registru.
  • vytvořit :Vytvořte nový obrázek z Dockerfile.
  • rm :Odeberte obrázek ze systému.
  • tag: Označte obrázek jménem.

Pro začátek se podívejme na to, jak vypsat obrázky ve vašem systému.

5. Spuštěním příkazu docker image ls zobrazíte seznam obrázků na vašem hostiteli. Příkaz docker image ls zobrazí seznam všech obrázků na vašem hostiteli, včetně úložišť, ze kterých byly staženy. ID, úložiště, značka a velikost obrázku.

docker image ls

Předpokládejme, že chcete odebrat obrázek ze svého hostitele. Můžete použít příkaz rm. K odstranění obrázku můžete použít název obrázku nebo ID obrázku.

docker image rm <image-name>
docker image rm <image-id>

V případě, že používáte ID, ujistěte se, že prvních několik znaků v ID je jedinečných pro obrázky v seznamu. Jinými slovy, prvních pár písmen v ID by neměly používat žádné jiné obrázky.

6. Chcete-li například odstranit obraz ubuntu:12.04, můžete použít kterýkoli z následujících příkazů. Všimněte si, že k odstranění obrázku můžeme použít pouze prvních několik znaků ID (5b1), protože s těmito prvními znaky nejsou žádné další obrázky.

docker image rm ubuntu:12.04
docker image rm 5b1

Obrázek ubuntu:12.04 bude smazán z vašeho hostitele spolu s každou vrstvou použitou k vytvoření obrázku, jak je znázorněno níže.

7. Znovu vypište obrázky ve vašem systému, abyste si ověřili, že obrázek ubuntu:12.04 již není uveden.

docker image ls

Všimněte si, že příkaz docker image ls a příkaz docker images dělá přesně to samé. Druhý je však nyní zastaralý, protože Docker dává přednost tomu, aby vývojáři používali příkaz docker se správnými dílčími příkazy. To samé máme s příkazem docker rmi. Tento příkaz se používá k odstranění obrázku a všech jeho vrstev úplně stejně jako docker image rm. Docker doporučuje používat docker rm se správnými dílčími příkazy.

docker image ls
docker images

Máme stejný výstup.

Dosud jste odebírali jeden nepoužitý obrázek po druhém. Co když chcete odstranit dva nebo více nepoužívaných obrázků současně?

Zde se hodí příkaz prune. Příkaz prune lze použít k odstranění všech nepoužitých obrázků z vašeho hostitele najednou. Pomocí příkazu prune můžete odstranit všechny visící obrázky, všechny nepoužité obrázky nebo kombinaci obou. Visící obrázky jsou obrázky, ke kterým není přidružen alespoň jeden kontejner.

8. Spusťte příkaz docker image prune k odstranění všech nepoužívaných/vislých obrazů ze systému.

docker image prune

Jak můžete vidět, příkaz prune odstranil všechny nepoužívané obrázky a jejich vrstvy z vašeho hostitele a ušetřil vám v tomto procesu spoustu místa na disku.

9. Znovu sepište obrázky na svém hostiteli, abyste ověřili, že obrázky skutečně zmizely. Nyní, když víte, jak vypsat, odstranit a oříznout obrázky z vašeho hostitele. Tyto základní příkazy vám pomohou udržet váš systém čistý a organizovaný.

docker image ls

Kontrola obrázků Docker

Obrázky a kontejnery Docker si můžete představit jako mystické černé skříňky. Zajímá vás, jaké kouzlo se v nich odehrává. V této části rozptýlíme část mystiky tím, že se podíváme na to, co je na obrázku Dockeru a jak můžete tyto informace využít ve svůj prospěch.

1. Docker nabízí způsob, jak zkontrolovat obsah obrázku. Příkaz docker inspect vezme cestu k obrázku a vytiskne o něm velké množství informací, jak ukazuje následující příklad.

docker inspect ubuntu

Jak je ukázáno níže, výstup z výše uvedeného příkazu obsahuje mnoho informací. Všechny informace zde vidíte ve formátu zvaném pole JSON.

Informace ve výstupu se zobrazují jako úložiště párů klíč–hodnota. Pro grep výstupu pro konkrétní klíčové slovo můžete použít nástroj Linuxu, jako je roura (|). Poté můžete výstup z potrubí použít pro jakýkoli účel, který chcete. Následující příklady ukazují, jak to můžete použít.

2. Spuštěním níže uvedeného příkazu uložte výstup příkazu docker inspect do souboru s názvem image-inspect.txt.

docker image inspect ubuntu > image-inspect.txt

3. Poté pomocí libovolného editoru otevřete soubor a prohlédněte si jeho obsah.

sudo nano image-inspect.txt

Výstup příkazu docker inspect obsahuje velké množství informací o obrázku, jak je znázorněno níže. Uvnitř editoru se můžete snadno pohybovat jako rolování nahoru/dolů v editoru a prohlížet různé informace. Pokud chcete, můžete informace upravit.

Pro formátování výstupu specifickým způsobem můžete také použít argument --format.

4. Chcete-li například vytisknout ID obrazu ubuntu, můžete použít následující příkaz.

docker image inspect ubuntu --format='{{.ID}}'

5. Vypište obrázek pro ověření ID obrázku.

docker image ls

6. Spuštěním níže uvedeného příkazu převedete výstup příkazu docker inspect do příkazu more. To vám umožní listovat ve výstupu, abyste viděli všechny informace, které jsou v něm obsaženy.

docker image inspect ubuntu | more

Tentokrát uvidíte Název hostitele (b32714f341a6 ) v ContainerConfig sekce, jak je uvedeno níže.

7. Co když chcete hodnotu názvu hostitele (b32714f341a6 ) pouze? Můžete toho dosáhnout spuštěním níže uvedeného příkazu.

docker image inspect ubuntu --format='{{.ContainerConfig.Hostname}}'

Jak můžete vidět, můžete použít příkaz docker inspect s nástroji Linuxu k dalšímu filtrování. Jako rozsah. Chcete-li například vypsat všechny adresy IP v rozsahu 192.168.0.0/16. A můžete jej dokonce zkombinovat s dalšími skriptovacími nástroji a dělat ještě úžasnější věci.

Použití značek Docker 

Jak budete pokračovat v práci s obrázky Docker, budete chtít začít používat značky. Tagy vám umožňují snadno identifikovat a spravovat vaše obrázky. Můžete například vytvořit značku pro každé prostředí, ve kterém se obrázek používá, nebo pro každého zákazníka či klienta, pro kterého se obrázek používá. To usnadňuje nalezení konkrétního obrázku, který potřebujete, a sledování toho, které obrázky byly použity pro jaké účely.

Syntaxe pro přidání značky do obrázku je následující:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Vaše značka může být jakýkoli platný řetězec ASCII a může obsahovat malá a velká písmena, číslice, podtržítka, tečky a pomlčky. Nesmí začínat tečkou ani pomlčkou a nesmí překročit délku 128 znaků. Podívejme se na příklad.

1. Abychom k obrázku mohli přidat značku, musíme nejprve znát název nebo ID obrázku, který chceme označit. Spuštěním následujícího příkazu můžeme vypsat všechny dostupné obrázky v našem systému:

docker image ls

2. Nyní spusťte níže uvedený příkaz a přidejte do obrázku značku "myubuntu".

docker tag ubuntu:latest ubuntu:myubuntu

3. Nyní, když znovu spustíme příkaz docker image ls, můžeme vidět, že náš obrázek byl označen "myubuntu".

Všimněte si, že značky jsou pouze aliasy. To znamená, že obrázek může mít více značek, ale všechny odkazují zpět na stejný zdrojový obrázek. Můžete tedy použít jakoukoli značku, kterou chcete, pokud vám to dává smysl. A při vytváření obrázků je dobré přidávat značky, abyste je později mohli snadno sledovat.

4. Podívejme se ještě na jeden příklad. Předpokládejme, že chceme vytvořit obrázek Ubuntu s tagem „original“. Můžeme to udělat spuštěním následujícího příkazu:

docker tag myubuntu:latest myubuntu:original

Výše uvedený příkaz vytvoří obrázek s označením „original“, který je založen na obrázku označeném „nejnovější“. Nyní máme dva obrázky myubuntu:jeden označený nejnovější a jeden označený jako originál , ale ukazují zpět na stejné ID zdrojového obrázku (2b4cba85892a ).

Práce s registry Docker

Nyní, když máme základní představu o tom, co jsou obrazy Dockeru, pojďme se podívat na práci s registry. Docker Hub je nejoblíbenější veřejný registr, ale jsou k dispozici i další možnosti.

Docker Hub je veřejný registr, který lze zdarma používat pro osobní i komerční účely. Má k dispozici širokou škálu obrázků a můžete si také vytvořit své vlastní obrázky a sdílet je s ostatními. Chcete-li používat Docker Hub, stačí si vytvořit účet a poté nainstalovat docker klienta. Poté můžete použít příkaz docker search k nalezení obrázků a příkaz docker pull k jejich stažení.

Doposud jsme pracovali s obrazem ubuntu, který je k dispozici na Docker Hub, veřejném registru Docker. Můžete však také vytvořit soukromý registr pro ukládání obrázků.

Nasazení soukromého registru dockerů

Existuje několik důvodů, proč byste mohli chtít používat soukromý registr:

  • K ukládání obrázků, které jsou určeny pouze pro interní použití. Možná máte obrázky, které obsahují citlivé informace, a nechcete, aby byly veřejně dostupné. Nebo možná chcete mít přehled o tom, které obrázky byly použity ve vašem prostředí, a nechcete, aby je ostatní mohli stahovat bez vašeho svolení.
  • Chcete-li urychlit stahování obrázků ve vašem distribučním kanálu CI/CD jejich místním ukládáním do mezipaměti. Spuštění vlastního registru a jeho vlastní ukládání je skvělý způsob, jak jej propojit a vylepšit systém CI/CD.

1. Zkontrolujte, zda je váš hostitel dockeru připraven vytvořit místní registr.

docker version

2. Spusťte níže uvedený příkaz docker run, aby byl spuštěn a spuštěn místní a soukromý registr. Kde:

  • -p 5000:5000 =mapovat port 5000 na hostiteli dockeru na port 5000 na kontejneru
  • --restart=always =zajišťuje, že kontejner bude vždy restartován, pokud selže
  • --name registry =název vašeho soukromého registru
  • registry:2 =obrázek, který bude použit k vytvoření kontejneru registru
docker run -d -p 5000:5000 --restart=always --name registry registry:2

3. Spusťte níže uvedený příkaz a vypište všechny spuštěné kontejnery na vašem hostiteli dockeru.

docker ps 

Uvidíte následující výstup. Tento výstup označuje, že kontejner registru je na vašem hostiteli dockeru spuštěn a spuštěn. Zápis :::5000->5000/tcp je zkratka, která mapuje port na hostiteli dockeru na port v kontejneru registru.

Nyní, když máme náš soukromý registr v provozu, pojďme se podívat, jak do něj přidat obrázky. Následující příklad ukazuje, jak přidat obraz ubuntu do registru. Nejprve budete muset stáhnout obrázek z Docker Hub do místního hostitele a dát mu konkrétní značku. Poté odešlete nově označený obrázek do svého soukromého registru. Nakonec smažte bitovou kopii ubuntu ze svého místního hostitele a vytáhněte bitovou kopii ze svého soukromého registru, abyste ji otestovali.

4. Spusťte níže uvedený příkaz a stáhněte si obrázek ubuntu s tagem 20.04 z Docker Hub do vašeho místního hostitele.

 docker image pull ubuntu:20.04

5. Dále spusťte níže uvedený příkaz a označte stažený obrázek Ubuntu jako „my-ubuntu“. Můžete použít libovolnou značku, ale je dobré použít něco, co dává vaší organizaci smysl.

docker tag ubuntu:20.04 localhost:5000/my-ubuntu 

6. Spusťte níže uvedený příkaz pro odeslání nově označeného obrazu do vašeho soukromého registru spuštěného na portu localhost:5000.

docker push localhost:5000/my-ubuntu

7. Spuštěním níže uvedeného příkazu smažte lokálně uložené obrazy ubuntu z vašeho localhost a otestujte svůj soukromý registr.

docker image remove ubuntu:20.04 && docker image remove localhost:5000/my-ubuntu

8. Jakmile budou odstraněny obrazy ubuntu uložené v místní mezipaměti, můžete spustit níže uvedený příkaz a stáhnout obraz z vašeho soukromého registru.

docker pull localhost:5000/my-ubuntu

9. Spuštěním níže uvedeného příkazu zobrazíte seznam všech obrázků na vašem hostitelském dockeru.

docker image ls

Zobrazí se my-ubuntu obrázek je uveden jako stažený z vašeho soukromého registru, jak je znázorněno níže. Tento výstup potvrzuje, že obraz byl úspěšně stažen z vašeho soukromého registru a váš soukromý registr funguje správně.

Vkládání, stahování a podepisování obrázků

Docker nabízí několik možností příkazového řádku vkládání, stahování a vyhledávání obrázků. V této části se dozvíte, jak tyto příkazy používat ke správě obrázků v registrech z příkazového řádku na vašem hostiteli. Tento příklad používá k demonstraci Docker Hub, ale můžete použít jakékoli jiné registry.

1. Spuštěním příkazu docker login se přihlaste do registru Docker Hub. Po zobrazení výzvy zadejte své uživatelské jméno a heslo. Pokud nemáte účet Docker Hub, můžete si jej zdarma vytvořit na https://hub.docker.com/.

docker login

2. Jakmile se přihlásíte, jste připraveni odeslat své obrázky. Předpokládejme, že chcete poslat nejnovější obrázek ubuntu do Docker Hub. Měli byste také obrázek označit smysluplným názvem, abyste na něj mohli v budoucnu snadno odkazovat. V tomto příkladu označíte obrázek jako howtoforge/ubuntu:latest. Neváhejte použít požadovaný název značky.

docker tag ubuntu:latest howtoforge/ubuntu:latest
docker push howtoforge/ubuntu:latest

3. Otevřete webový prohlížeč a přejděte do Docker Hub. Tam uvidíte svůj obrázek. Toto úložiště bylo vytvořeno na základě vašeho uživatelského jména a značky, kterou jste použili. V tomto příkladu je úložiště howtoforge/ubuntu . Přejděte na kartu značky a uvidíte, že značka byla úspěšně použita (nejnovější ).

4. Spuštěním níže uvedeného příkazu odeberte místní bitovou kopii ubuntu a otestujte stažení.

docker image rm howtoforge/ubuntu

Vypište obrázky ve vašem systému a ověřte, že byl obrázek ubuntu odstraněn.

docker image ls

5. Spusťte níže uvedený příkaz ke stažení obrazu my-ubuntu z vašeho Docker Hub.

docker pull howtoforge/ubuntu

6. Znovu vypište obrázky na vašem hostiteli, abyste ověřili, že byl stažen obrázek ubuntu. Ve vašem systému byste měli vidět obraz my-ubuntu.

docker image ls

Při práci s obrázky můžete chtít vyhledat konkrétní obrázky v registrech Docker. K vyhledávání obrázků v registrech Dockeru můžete použít příkaz docker search.

7. Spuštěním příkazu docker search zobrazíte všechny dostupné možnosti a parametry.

man docker search

Měli byste vidět následující výstup. Můžete vidět užitečnou možnost filtrování jako:

  • hvězdičky= :filtrovat výsledky vyhledávání podle počtu hvězdiček, které má obrázek na Docker Hub. Toto můžete použít k vyhledání nejoblíbenějších obrázků.
  • is-automated=(true|false) :filtrovat výsledky vyhledávání tak, aby zahrnovaly nebo vylučovaly automatické sestavení. Toto můžete použít k vyhledání obrázků, které jsou nebo nejsou automatizovanými sestavami.
  • is-official=(true|false) :filtrovat výsledky vyhledávání tak, aby zahrnovaly nebo vylučovaly oficiální obrázky. Můžete to použít k nalezení obrázků, které jsou oficiálně podporovány společností za obrázkem. Například Ubuntu je oficiální společností za obrazem Ubuntu. Nginx je oficiální společností za obrazem Nginx. Pokud je to možné, měli byste vždy používat oficiální obrázky, protože byly testovány společností a je pravděpodobnější, že budou stabilní. Když narazíte na problémy s oficiálním obrázkem, můžete získat pomoc od společnosti, která obrázek poskytuje.

8. Například spusťte příkaz docker search --filter=stars=4 ubuntu a vyhledejte obrázek ubuntu se 4 nebo více hvězdičkami na Docker Hub.

docker search --filter=stars=4 ubuntu

9. Spusťte níže uvedený příkaz a vyhledejte obrázek ubuntu, který je oficiálním obrázkem z Ubuntu.

docker search --filter=is-official=true ubuntu

Výstupem by měl být seznam úložišť, která obsahují obrázek ubuntu a indikují, že se jedná o oficiální obrázek Ubuntu (OK ), jak je uvedeno níže.

10. Spusťte níže uvedený příkaz a vyhledejte obrázek ubuntu, který má na Docker Hub hodnocení alespoň 100 hvězdiček a je oficiálním obrázkem Ubuntu.

docker search --filter="stars=100" --filter=is-official=true ubuntu

Obrázky dockeru jsou skvělým způsobem, jak uložit kód a konfiguraci vaší aplikace. Zároveň je však snadné nashromáždit mnoho nepoužívaných obrázků, zejména pokud testujete různé aplikace nebo zkoušíte různé konfigurace. Možná zjistíte, že některé obrázky ve svých registrech již nepotřebujete.

Obrázek můžete odstranit tak, že přejdete do úložiště, které obrázek obsahuje, a kliknete na tlačítko smazat.

11. Například na Docker Hub přejděte do úložiště howtoforge/ubuntu. Klikněte na Nastavení> Smazat úložiště . Potvrďte, že chcete úložiště odstranit, zadáním názvu úložiště. Klikněte na Smazat .

Přejděte zpět na řídicí panel a uvidíte, že úložiště howtoforge/ubuntu je nyní odstraněno spolu s obrazem ubuntu.

Závěr

Gratulujeme! Nyní jste se dostali na konec článku. Nyní byste měli mít základní znalosti o obrazech Docker a jak s nimi pracovat. Pokud se chcete o Dockeru dozvědět více, doporučujeme přečíst si oficiální dokumentaci Dockeru, kde najdete další informace o tématech, jako jsou:

  • Dockerfiles
  • Vytváření sítí
  • Objemy
  • Služby
  • Rojný režim

Docker
  1. Začínáme se Zsh

  2. Začínáme s ls

  3. Začínáme s PostgreSQL na Linuxu

  1. Začínáme s GnuCash

  2. Jak sdílet obrázky Docker s ostatními

  3. Jak upravit obrázky Docker

  1. Začínáme s OKD na ploše Linuxu

  2. Začínáme s Etcher.io

  3. Začínáme s Tmux