Elementen van een Dockerfile verkennen

Voltooid

Een Dockerfile is een script dat een reeks instructies bevat die worden gebruikt om een Docker-installatiekopieën te bouwen. Dockerfiles bevatten doorgaans de volgende informatie:

  • De basis- of bovenliggende installatiekopie die wordt gebruikt om de nieuwe installatiekopie te maken
  • Opdrachten voor het bijwerken van het basisbesturingssystemen en het installeren van andere software
  • Buildartefacten die moeten worden toegevoegd, zoals een ontwikkelde toepassing
  • Services die beschikbaar moeten worden, zoals een opslag- en netwerkconfiguratie
  • De opdracht die moet worden uitgevoerd als de container wordt gestart

Een Dockerfile maken

De eerste stap bij het maken van een Dockerfile is het kiezen van een basisinstallatiekopieën die fungeert als de basis voor uw toepassing. Als u bijvoorbeeld een .NET-toepassing bouwt, kunt u een Microsoft .NET-installatiekopieën als basis kiezen.

# Use the .NET 6 runtime as a base image
FROM mcr.microsoft.com/dotnet/runtime:6.0

# Set the working directory to /app
WORKDIR /app

# Copy the contents of the published app to the container's /app directory
COPY bin/Release/net6.0/publish/ .

# Expose port 80 to the outside world
EXPOSE 80

# Set the command to run when the container starts
CMD ["dotnet", "MyApp.dll"]

Laten we elke regel doorlopen om te zien wat het doet:

  • FROM mcr.microsoft.com/dotnet/runtime:6.0: met deze opdracht stelt u de basisinstallatiekopieën in op de .NET 6-runtime, die nodig is om .NET 6-apps uit te voeren.
  • WORKDIR /app: hiermee stelt u de werkmap in op /app, waar app-bestanden worden gekopieerd.
  • COPY bin/Release/net6.0/publish/ .: Kopieert de inhoud van de gepubliceerde app naar de map van /app de container. We gaan ervan uit dat de .NET 6-app al is gebouwd en gepubliceerd naar de bin/Release/net6.0/publish map.
  • EXPOSE 80: maakt poort 80, de standaard-HTTP-poort, beschikbaar voor de buitenwereld. Wijzig deze regel dienovereenkomstig als uw app luistert op een andere poort.
  • CMD ["dotnet", "MyApp.dll"]: de opdracht die moet worden uitgevoerd wanneer de container wordt gestart. In dit geval voeren we de dotnet-opdracht uit met de naam van het DLL-bestand van onze app (MyApp.dll). Wijzig deze regel zodat deze overeenkomt met de naam en het toegangspunt van uw apps.

We behandelen de specificatie van het Dockerfile-bestand niet. Ga naar de Dockerfile-verwijzing voor meer informatie. Tijdens elk van deze stappen wordt een containerinstallatiekopie in de cache geplaatst terwijl we de uiteindelijke containerinstallatiekopie maken. Deze tijdelijke installatiekopieën worden boven op de voorgaande weergegeven en als één installatiekopie gepresenteerd zodra alle stappen zijn voltooid.

Resources