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

Jak použít Dockerfile k vytvoření Docker Image

<šablona x-if=visible><šablona x-if=$isMobile()>

Dockerfile je textový soubor s instrukcemi, které se používají k automatizaci instalace a konfigurace obrazu aDocker. Dockerfiles usnadňují nasazení více kontejnerů Docker, aniž byste museli udržovat stejný obraz na více virtuálních počítačích. Pokyny jsou prováděny v pořadí, v jakém se objevují v Dockerfile, díky čemuž jsou jejich používání a aktualizace jasné a intuitivní. Tento článek popisuje základy a příklad toho, jak Dockerfile funguje.

Než začnete

  1. Seznamte se s naším průvodcem Začínáme, vytvořte a aktualizujte Linode a nainstalujte Docker. Případně můžete rychle nasadit aktualizovaný Linode s podporou Dockeru pomocí aplikace Docker Marketplace.

  2. Ujistěte se, že je váš Linode zabezpečený podle našeho průvodce nastavením a zabezpečením výpočetní instance.

  3. Tato příručka předpokládá, že jste spokojeni s používáním rozhraní příkazového řádku (CLI) Dockeru. Chcete-li se dozvědět více o Docker CLI, podívejte se na jejich dokumentaci.

Jak Dockerfile funguje?

Dockerfile je skript, který provádí různé příkazy a akce k vytvoření obrazu Docker, který lze poté použít k nasazení kontejneru Docker. Příkazy a informace v rámci Dockerfile lze nakonfigurovat tak, aby používaly konkrétní verze softwaru a závislosti pro stabilní nasazení. Registr aDocker můžete také použít k ukládání a přístupu k vašim veřejným (nebo soukromým) obrazům Docker.

Jakmile je soubor Docker napsán, můžete použít docker build příkaz k vygenerování obrazu Dockeru na základě pokynů souboru Docker. Poté můžete nasadit kontejner založený na obrázku pomocí příkazů jako docker run nebo docker create .

Zde jsou běžné pokyny, které můžete použít ve svých souborech Docker k vytváření obrázků:

Základní definice

  • OD :Definujte základní obrázek, například ubuntu nebo debian , který se používá ke spuštění procesu sestavení. Povinné pro každý Dockerfile.
  • ÚDRŽBA :Definujte celé jméno a e-mailovou adresu tvůrce obrázku.

Proměnné

  • ENV :Nastavte proměnné prostředí, které přetrvávají při nasazení kontejneru.
  • ARG :Nastavte vhodnou proměnnou doby sestavení. Lze použít jako alternativu k ENV k vytvoření proměnné, která nepřetrvává, když je kontejner nasazen z obrázku.

Spuštění příkazu

  • RUN :Spouštět příkazy, jako jsou příkazy k instalaci balíčku, na nové vrstvě obrazu.
  • CMD :Spusťte konkrétní příkaz v kontejneru, který je nasazen s obrázkem, nebo nastavte výchozí parametry pro ENTRYPOINT návod. Pro každý Dockerfile se používá pouze jeden.
  • VSTUPNÍ BOD :Nastavte výchozí aplikaci, která se použije při každém nasazení kontejneru s bitovou kopií. Pro každý Dockerfile se používá pouze jeden.
  • UŽIVATEL :Nastavte UID (uživatelské jméno) pro spouštění příkazů v kontejneru.
  • WORKDIR :Nastavte cestu kontejneru, kde se provádějí následné příkazy Dockerfile.
Poznámka RUN , CMD a ENTRYPOINT lze každý spustit v shell forma, která má normální argumenty, nebo exec formulář, který přebírá argumenty jako pole JSON. Protože exec Form nevyvolává příkazový shell, je obecně preferován a používán v této příručce.

Správa dat

  • PŘIDAT :Zkopírujte soubory ze zdroje do souborového systému obrázku v nastaveném cíli s automatickým tarballem a vzdáleným zpracováním URL.
  • KOPÍROVAT :Podobné jako ADD ale bez automatického tarballu a vzdáleného zpracování URL.
  • VOLUME :Povolí přístup z určeného bodu připojení v kontejneru do adresáře na hostitelském počítači.

Vytváření sítí

  • VYSTAVIT :Vystavte konkrétní port, abyste umožnili síťové propojení mezi kontejnerem a vnějším světem.

Dále vytvoříme příklad Dockerfile, který využívá některé z těchto příkazů.

Vytvoření souboru Dockerfile

Chcete-li vytvořit soubor Dockerfile:

  1. Na příkazovém řádku (buď přes SSH nebo Lish ve Správci Linode) vytvořte a přepněte do nového adresáře:

    mkdir ~/mydockerbuild && cd ~/mydockerbuild
    
    Poznámka Tím umístíte adresář sestavení Dockeru do vašeho domovského adresáře. V rámci dobré praxe neukládejte soubor Dockerfile v samotném domovském adresáři nebo v kořenovém adresáři serveru. Místo toho vytvořte samostatný adresář a umístěte do něj všechny potřebné soubory (vedle souboru Dockerfile), jak je znázorněno v této příručce.
  2. Vytvořte příklad Dockerfile:

    touch example_dockerfile
    
  3. Otevřete Dockerfile pomocí textového editoru, který si vyberete (pro tento příklad používáme nano):

    nano example_dockerfile
    
  4. Zkopírujte následující příklad do svého Dockerfile. Tím se vytvoří Dockerfile, který vygeneruje obraz Debianu, nastaví informace o správci a jednoduše vrátí „Ahoj, Sunshine!“ při spuštění:

    Soubor:example_dockerfile
    1
    2
    3
    
    FROM debian
    MAINTAINER Jane Doe [email protected]
    CMD ["echo", "Hello, Sunshine!"]
  5. Uložte Dockerfile.

  6. Zadejte cat example_dockerfile a ujistěte se, že je zahrnut text shora.

Vytvoření obrázku Dockeru z Dockerfile

Vytvořte obrázek z Dockerfile pomocí docker build příkaz:

docker build ~/mydockerbuild -f example_dockerfile -t example_image

Označení obrázku pomocí example_image usnadňuje nasazení kontejneru v dalším kroku.

Výstup by měl vypadat nějak takto:

Sending build context to Docker daemon  4.096kB
Step 1/3 : FROM debian
 ---> 4a7a1f401734
Step 2/3 : MAINTAINER Jane Doe [email protected]
 ---> Running in fdd81bd8b5c6
Removing intermediate container fdd81bd8b5c6
 ---> 1253842068a3
Step 3/3 : CMD ["echo", "Hello, Sunshine!"]
 ---> Running in d33e1bacf1af
Removing intermediate container d33e1bacf1af
 ---> a5d95e138b97
Successfully built a5d95e138b97
Successfully tagged example_image:latest

Jak můžete vidět, pokyny z example_dockerfile jsou prováděny v pořadí. Obrázek s označením example_image je nyní připraven ke spuštění pro nasazení kontejneru.

Spuštění obrazu dockeru za účelem nasazení kontejneru

Spuštění obrazu, který jste právě vytvořili pro nasazení kontejneru Docker, je nyní stejně snadné jako zadání následujícího:

docker run example_image

Nový kontejner založený na example_image je nasazen a příkaz je uveden v CMD instrukce se pak provede z kontejneru s následujícím výstupem:

Hello, Sunshine!
Poznámka Pokud se docker run se provede příkaz a obraz Dockeru není k dispozici ve vašem aktuálním pracovním adresáři, místo toho se stáhne z registru Docker.

Další čtení

Gratulujeme! Vytvořili jste svůj první Dockerfile a spustili svůj první Docker image.

Další příklady a informace o použití souborů Docker s obrazy a kontejnery Docker naleznete na:

  • náš průvodce Jak používat obrázky, kontejnery a soubory Docker do hloubky;

  • Doporučené postupy pro Docker'sDockerfile.

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Osvědčené postupy pro psaní souborů Docker
  • Oficiální obrázky Docker na Docker Hub
  • Docker Docs

Docker
  1. Jak používat obrázky, kontejnery a soubory Docker do hloubky

  2. Jak používat Docker Compose

  3. Jak automaticky vytvářet a konfigurovat vlastní obrázky dockeru pomocí Dockerfile – část 3

  1. Jak používat Dockerfile ONBUILD ke spouštění spouštěčů na následných sestaveních

  2. Jak nakonfigurovat docker pro použití proxy

  3. Jak vytvořit Docker Image z kontejneru a Dockerfile

  1. Jak používat příkaz Docker Inspect

  2. Jak upravit obrázky Docker

  3. Jak potvrdit změny v obrazu Dockeru