GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Dockerfiles

Ein Dockerfile ist das Rezept zum Erstellen eines Docker-Images.

Dies ist der Arbeitsablauf:Zuerst erstellt man ein Dockefile, dann baut man daraus mit docker build ein Docker-Image , und schließlich führen Sie einen Container aus dem Image aus.

Ein Dockerfile ist eine Textdatei mit Anweisungen zum Erstellen eines Images.

Diese Anweisungen sind Teil einer Konfigurationssprache, die Schlüsselwörter wie FROM enthält , LABEL , RUN , COPY , ENTRYPOINT , CMD , EXPOSE , ENV und mehr.

Lassen Sie uns unser erstes Dockerfile erstellen:

Angenommen, Sie haben einen Ordner mit einer einfachen Node.js-App, die aus einer app.js besteht , eine package.json Datei, die einige Abhängigkeiten auflistet, die Sie installieren müssen, bevor Sie die App ausführen, und package-lock.json .

Erstellen Sie darin eine Nur-Text-Datei mit dem Namen Dockerfile , ohne Erweiterung, mit diesem Inhalt:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]

HINWEIS:Verwenden Sie doppelte Anführungszeichen in der CMD Linie. Einfache Anführungszeichen führen zu einem Fehler.

In der ersten Zeile sagen wir, von welchem ​​Bild wir ausgehen wollen. Dies wird unser Basisbild sein. In diesem Fall wird das offizielle Node.js-Image basierend auf Alpine Linux unter Verwendung von Node 14 verwendet. Beim Erstellen eines Containers aus der Docker-Datei erhält Docker dieses Image von Docker Hub.

Als nächstes setzen wir das Arbeitsverzeichnis auf /usr/src/app , was bedeutet, dass alle unsere Befehle in diesem Ordner ausgeführt werden, bis wir ihn erneut ändern. Das ist ein Ordner, von dem wir wissen, dass er bereits im Node-Image existiert.

Wir kopieren die package.json , package-lock.json (mit dem * Platzhalter) und app.js Dateien, die im aktuellen Ordner vorhanden sind, in das Arbeitsverzeichnis.

Wir führen npm install aus um die in package.json aufgelisteten Pakete zu installieren Datei.

Dann legen wir Port 3000 nach außen frei, da unsere App darauf läuft. Ein Container ist zu 100 % vom Netzwerk isoliert, es sei denn, Sie legen einen seiner Ports mit EXPOSE offen Befehl. Wir werden später sehen, wie wir Ports auf unserem Computer Ports in einem Docker-Container zuordnen können.

Schließlich führen wir node app.js aus um die App zu starten.

Dies ist ein Dockerfile, und wir werden bald sehen, wie man daraus tatsächlich einen Container erstellt.


Docker
  1. Terraform – Bereitstellen von Python Lambda (Container-Image)

  2. Wie dreht man ein Bild in Gs?

  3. Datei aus Docker-Image extrahieren?

  4. So aktualisieren Sie das FOG-Image

  5. Bildoptimierung mit webp

Eine kurze Einführung in Dockerfile

Was ist ein Docker-Image-Manifest?

So debuggen Sie Kubernetes „ImagePullBackOff“-Fehler

Stellen Sie eine Produktions-Docker-MariaDB-Installation bereit

So reduzieren Sie die Docker-Image-Größe in Docker-Containern

Teilen von Docker-Images auf Docker Hub