Server

Dockerfiles, Dockerignore und Docker Compose erstellen

Dockerfiles, Dockerignore und Docker Compose erstellen

Eine der besten Möglichkeiten, Docker zum automatischen Erstellen von Images zu automatisieren, ist die Verwendung eines Dockerfiles. Ein Dockerfile ist ein einfaches Textdokument, das alle Befehle enthält, die ein Benutzer auf der Befehlszeile aufrufen kann, um ein Image zusammenzustellen.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie ein Dockerfile für die nodeJS-Anwendung erstellen, Dockerignore erstellen und docker-compose.

Dockerfile, Dockerignore und Docker Compose erstellen

1. Dockerfile

Wir werden das Dockerfile im Quellverzeichnis erstellen.

vim Dockerfile

Definieren Sie zunächst, von welchem ​​Bild aus wir den Build starten möchten. Hier habe ich mein alpines Linux-Docker-Image hinzugefügt, das nodejs10 und NPM enthält. Folgen Sie unserem Docker-Image- und Docker-Hub-Leitfaden, um Docker-Images zu erstellen und sie zum Docker-Hub zu ziehen.

VON ddarshana/alpinenode10

Der Befehl MAINTAINER zeigt den Autor der generierten Bilder an.

MAINTAINER Darshana ([email protected])

Der RUN-Befehl wird verwendet, um beliebige Befehle auszuführen. Hier installieren wir ein curl-Paket unter Alpine Linux.

RUN apk add --update curl && rm -rf /var/cache/apk/*

Erstellen Sie ein neues Verzeichnis namens App, die den Anwendungscode im Bild enthalten wird.

RUN mkdir /app

Mit der Direktive WORKDIR wird eingestellt, wo der mit CMD definierte Befehl ausgeführt werden soll.

ARBEITSVERZEICHNIS /app

Paket kopieren.json-Datei.

Paket KOPIEREN.json .

NodeJS-Anwendung und Abhängigkeiten installieren.

npm-Installation ausführen

Bundle-App-Quelle.

KOPIEREN… 

Laden Sie die Umgebungsvariablendatei herunter. In unserem Fall haben wir einen separaten Ort, um globale Konfigurationen zu speichern.

RUN curl -O https://demofiles.fosslinux/nodejs/.env

Führen Sie die Anwendung aus, und sie wird auf dem standardmäßigen 3000-Port gestartet.

CMD ["npm", "start"]

Hier ist unser vollständiges Dockerfile.

VON ddarshana/alpinenode10 MAINTAINER darshana ([email protected]) # "curl"-Paket installieren RUN apk add --update curl && rm -rf /var/cache/apk/* # App-Verzeichnis erstellen RUN mkdir /app WORKDIR /app # Paket kopieren.json COPY-Paket.json . # App-Abhängigkeiten installieren RUN npm install # App-Quelle bündeln KOPIEREN… # Umgebungsvariablendatei von unserem Netzwerkspeicherort herunterladen RUN curl -O https://demofiles.fosslinux/nodejs/.env # APP CMD ausführen ["npm", "start"]

Datei speichern und beenden. Hier ist mein NodeJs App Code-Verzeichnis.

Nodejs-APP-Code

2. Erstellen einer Dockerignore-Datei

Die Verwendung der Datei „dockerignore“ verhindert, dass unsere lokalen Module und andere unerwünschte Dateien auf das Docker-Image kopiert werden und die Möglichkeit, in Ihrem Image installierte Module zu überschreiben. Wir empfehlen Ihnen dringend, es zusammen mit Dockerfiles zu verwenden.

Die Dockerignore-Datei sollte sich im selben Verzeichnis wie die Dockerfile befinden.

vim .Dockerignorieren

Hier haben wir folgende Inhalte hinzugefügt:

.env Dockerfile node_modules test .vscode .eslintrc.js

Datei speichern und beenden.

Erstellen Sie ein Docker-Image

Docker-Build . -t fosslinuxdemo/nodejsapp

Bild erstellen

Es sollte einige Zeit dauern, bis der Vorgang abgeschlossen ist. Bitte haben Sie Geduld.

Bild erstellt

Docker-Images auflisten

Führen Sie den folgenden Befehl aus, um Bilder aufzulisten:

Docker-Bilder

Bilder auflisten

Docker-Image ausführen

docker run -itd -p 3000:3000 fosslinuxdemo/nodejsapp

-itd:- führt den Container im Hintergrund aus

-p:- Flag leitet einen öffentlichen Port zu einem privaten Port innerhalb des Containers um

4. Docker Compose

Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen mit mehreren Containern. Bei Compose verwenden wir eine YAML-Datei, um die Anwendungsdienste zu konfigurieren configure. Danach erstellen und starten wir mit einem einzigen Befehl alle Dienste aus unserer Konfiguration start.

Compose installieren

Bevor Sie den Composer installieren, müssen Sie zunächst Docker installieren.

Führen Sie diesen Befehl aus, um die aktuelle stabile Version von Docker Compose herunterzuladen:

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Wenden Sie ausführbare Berechtigungen auf die Binärdatei an:

chmod +x /usr/local/bin/docker-compose

Testen Sie die Installation:

docker-compose --version

Docker Composer-Installation

5. Installation von WordPress und MySQL mit Docker Compose

Erstellen Sie einen Ordner für Ihr Projekt:

mkdir /opt/fosslinuxdemo

Gehen Sie in das erstellte Verzeichnis:

cd /opt/fosslinuxdemo

Hier erstellen wir Datenverzeichnisse für unseren MySQL-Container und WordPress-Container.

mkdir-Daten mkdir html

Wir werden die oben genannten Verzeichnisse in unsere Container einhängen.

Erstellen Sie eine Composer-Datei:

vim docker-compose.yml

Hier ist unsere Docker-Compose-Datei. Kopieren Sie den folgenden Inhalt in Ihre Datei.

Version: '3.7' Dienste: db: container_name: fosslinux-mysql Neustart: immer Image: mysql:5.7 Volumes: - /opt/fosslinuxdemo/data:/var/lib/mysql Befehl: --default-authentication-plugin=mysql_native_password Umgebung: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD:3306:3306: -" Netzwerke: - fosslinux_net wp: container_name: fosslinux-wp Neustart: immer Volumes: - "/opt/fosslinuxdemo/html:/var/www/html" abhängig_on: - db-Image: WordPress-Ports: - "80:80" Umgebung: WORDPRESS_DB_HOST : db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: WordPress-Netzwerke: - fosslinux_net-Netzwerke: fosslinux_net: 

Datei und Verzeichnisse erstellen

Beachten Sie die Versionsnummer. Weitere Details zur Versionierung @ Composer-Dateiversion.

Version: '3.7'
Dienste: DB:

Ein Dienst in Compose ist ein laufender Container, und Dienstdefinitionen geben Informationen darüber an, wie jeder Container ausgeführt wird. Unsere Service-Definition „db“ bietet verschiedene Möglichkeiten.

container_name: fosslinux-mysql
Neustart: immer
Bild: mysql: 5.7
Bände: https://hub.Docker.com/_/mysql - /opt/fosslinuxdemo/data:/var/lib/mysql

Hier mounten wir das Volume „/opt/fosslinuxdemo/data“ in das Verzeichnis „/var/lib/mysql“ auf dem Container. Im Allgemeinen ist es das Standard-Datenverzeichnis für MySQL auf den meisten Distributionen.

Befehl: --default-authentication-plugin=mysql_native_password

Diese Option gibt einen Befehl an, um den Standard-CMD-Befehl für das Bild zu überschreiben.

Umgebung:

Umgebungsvariablen definieren. Hier setzen wir MySQL-Variablen.

 Ports: - "3306:3306"
Netzwerke: - fosslinux_net
hängt_von: - db

Dies stellt dar, dass unsere Container in der Reihenfolge der Abhängigkeit beginnen, wobei der Container „wp“ nach dem Container „db“ beginnt.

Jetzt können wir unsere Umgebung gestalten.

 docker-compose up -d

-d-Flag, das Container im Hintergrund ausführt.

Umgebung schaffen

Docker-Container auflisten:

docker ps -a

Erstellte Container

Überprüfen Sie die Protokolle des WordPress-Containers:

Docker-Protokolle -f fosslinux-wp

Gehen Sie nun zum Webbrowser und geben Sie Ihre IP ein, um das WordPress-Installationsfenster zu erhalten.

WordPress-Installation

Klicken Sie weiter auf, fahren Sie fort und schließen Sie den WordPress-Installationsprozess ab.

Das ist alles über die Arbeit mit Dockerfiles und Docker Compose. Ich hoffe dir hat der Artikel gefallen.

Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...