Přizpůsobení image Dockeru pro spuštění vlastní webové aplikace

Dokončeno

Docker Hub je skvělým zdrojem imagí, se kterými můžete začít vytvářet vlastní kontejnerizované aplikace. Můžete si stáhnout image, která poskytuje základní funkce, které potřebujete, a pak nad ní vrstvit vlastní aplikaci a vytvořit novou vlastní image. Kroky pro tento proces můžete automatizovat napsáním souboru Dockerfile.

Ve scénáři online obchodu s oblečením se společnost rozhodla, že Docker je směrem vpřed. Dalším krokem je určení nejlepšího způsobu kontejnerizace webových aplikací. Společnost plánuje vytvářet mnoho aplikací pomocí ASP.NET Core. Všimli jste si, že Docker Hub obsahuje základní image, která zahrnuje tuto architekturu. Jako důkaz konceptu chcete začít s touto základní imagí a přidat kód pro jednu z webových aplikací pro vytvoření nové vlastní image. Chcete také, aby byl tento proces snadno opakovatelný, takže ho můžete automatizovat pokaždé, když vydáte novou verzi webové aplikace.

V této lekci se dozvíte, jak vytvořit vlastní image Dockeru a jak proces automatizovat napsáním souboru Dockerfile.

Vytvoření vlastní image pomocí souboru Dockerfile

Pokud chcete vytvořit image Dockeru obsahující vaši aplikaci, obvykle začnete identifikací základní image , do které přidáte soubory a informace o konfiguraci. Proces identifikace vhodné základní image obvykle začíná vyhledáváním obrázků v Docker Hubu. Chcete image, která už obsahuje aplikační architekturu a všechny nástroje a nástroje distribuce Linuxu, jako je Ubuntu nebo Alpine. Pokud máte například aplikaci ASP.NET Core, kterou chcete zabalit do kontejneru, publikoval Microsoft image s názvem mcr.microsoft.com/dotnet/core/aspnet, která už obsahuje modul runtime ASP.NET Core.

Image můžete přizpůsobit spuštěním kontejneru se základní imagí a provedením změn. Změny obvykle zahrnují aktivity, jako je kopírování souborů do kontejneru z místního systému souborů a spouštění různých nástrojů a nástrojů pro kompilaci kódu. Až budete hotovi, pomocí docker commit příkazu uložíte změny do nové image.

Ruční provádění výše uvedeného procesu je časově náročné a náchylné k chybě. Můžete ho skriptovat pomocí jazyka skriptu, jako je Bash, ale Docker nabízí efektivnější způsob automatizace vytváření imagí prostřednictvím souboru Dockerfile.

Soubor Dockerfile je soubor prostého textu obsahující všechny příkazy potřebné k sestavení image. Soubory Dockerfile jsou psané minimalistickým skriptovacím jazykem určeným k vytváření a konfiguraci imagí. Zdokumentují operace potřebné k sestavení image počínaje základní imagí.

Následující příklad ukazuje soubor Dockerfile, který sestaví aplikaci .NET Core 2.2 a zabalí ji do nové image.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /app
COPY myapp_code .
RUN dotnet build -c Release -o /rel
EXPOSE 80
WORKDIR /rel
ENTRYPOINT ["dotnet", "myapp.dll"]

V tomto souboru probíhají následující operace:

Příkaz Akce
FROM Stáhne zadanou image a vytvoří nový kontejner založený na této imagi.
WORKDIR Nastaví aktuální pracovní adresář v kontejneru, který používají následující příkazy.
KOPÍROVAT Zkopíruje soubory z hostitelského počítače do kontejneru. První argument (myapp_code) je soubor nebo složka v hostitelském počítači. Druhý argument (.) určuje název souboru nebo složky, které mají fungoval jako cíl v kontejneru. V tomto případě je cílem aktuální pracovní adresář (/app).
RUN Spustí příkaz v kontejneru. Argumenty příkazu RUN jsou příkazy příkazového řádku.
VYSTAVIT Vytvoří konfiguraci v nové imagi, která určuje, které porty se mají otevřít při spuštění kontejneru. Pokud v kontejneru běží webová aplikace, je běžné příkazem EXPOSE zpřístupnit port 80.
ENTRYPOINT Určuje operaci, která má kontejner běžet při spuštění. V tomto příkladu spustí nově sestavenou aplikaci. Zadáte příkaz, který chcete spustit, a každý z jejích argumentů jako pole řetězců.

Aplikace, které se mají zabalit jako image Dockeru, mají podle konvence soubor Dockerfile umístěný v kořenovém adresáři zdrojového kódu, a jeho název je prakticky vždy Dockerfile.

Příkaz docker build vytvoří novou image spuštěním souboru Dockerfile. Syntaxe tohoto příkazu má několik parametrů:

  • Příznak -f označuje název souboru Dockerfile, který se má použít.
  • Příznak -t určuje název image, která se má vytvořit. V tomto příkladu myapp:v1.
  • Poslední parametr . poskytuje kontext sestavení zdrojových souborů pro příkaz COPY: sadu souborů na hostitelském počítači potřebnou během procesu sestavování.
docker build -t myapp:v1 .

Příkaz na pozadí docker build vytvoří kontejner, spustí v něm příkazy a pak potvrdí změny do nové image.