<š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
-
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.
-
Ujistěte se, že je váš Linode zabezpečený podle našeho průvodce nastavením a zabezpečením výpočetní instance.
-
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
nebodebian
, 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ámkaRUN
,CMD
aENTRYPOINT
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:
-
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.
-
Vytvořte příklad Dockerfile:
touch example_dockerfile
-
Otevřete Dockerfile pomocí textového editoru, který si vyberete (pro tento příklad používáme nano):
nano example_dockerfile
-
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!"]
-
Uložte Dockerfile.
-
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