Elementen van een Dockerfile verkennen
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 is gebouwd en gepubliceerd naar debin/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.
De specificatie van het Dockerfile-bestand wordt niet behandeld. Ga naar de Dockerfile-referentie 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
- Naslaginformatie over Docker-uitvoering (CLI)
- Docker-buildreferentie