Wenn Sie Docker verwenden, können Sie Volumes verwenden, um Daten auch dann beizubehalten, wenn Sie die Container stoppen oder neu starten. Wir erstellen und verwenden Docker-Volumes für PostgreSQL.
Voraussetzungen
So können Sie diesem Tutorial folgen:
- Sie sollten Docker installiert auf Ihrem Rechner
- Sie sollten mit Docker-Befehlen und PostgreSQL vertraut sein
Schritt 1: Ziehen Sie das PostgreSQL-Picture
Zuerst ziehen wir das PostgreSQL-Picture von DockerHub:
Schritt 2: Erstellen Sie ein Docker-Quantity
Als Nächstes erstellen wir ein Docker-Quantity zum Speichern der Daten. Dieses Quantity speichert die Daten auch dann, wenn der Container entfernt wird.
$ docker quantity create pg_data
Schritt 3: Ausführen des PostgreSQL-Containers
Nachdem wir nun das Picture heruntergeladen und ein Quantity erstellt haben, können wir den PostgreSQL-Container ausführen und das erstellte Quantity daran anhängen.
$ docker run -d
--name my_postgres
-e POSTGRES_PASSWORD=mysecretpassword
-v pg_data:/var/lib/postgresql/information
-p 5432:5432
postgres
Dieser Befehl wird ausgeführt my_postgres
im getrennten Modus. Mit –v pg_data:/var/lib/postgresql/information montiert die pg_data
Volumen auf /var/lib/postgresql/daten im Container. Und mit -p 5432:5432 Karten Port 5432 von my_postgres
zu Port 5432 auf dem Hostcomputer.
Schritt 4: Überprüfen der Quantity-Nutzung
Nachdem wir das Quantity erstellt haben, können wir überprüfen, ob es verwendet wird. Sie können das Quantity überprüfen und den Inhalt prüfen.
$ docker quantity examine pgdata
Durch Ausführen dieses Befehls werden Particulars zum Quantity angezeigt, einschließlich seines Einhängepunkts auf Ihrem Hostsystem. Sie können zu diesem Verzeichnis navigieren und die PostgreSQL-Datendateien anzeigen.
(
{
"CreatedAt": "2024-08-07T15:53:23+05:30",
"Driver": "native",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/pg_data/_data",
"Title": "pg_data",
"Choices": null,
"Scope": "native"
}
)
Schritt 5: Erstellen einer Datenbank und Tabelle
Stellen Sie eine Verbindung zur Postgres-Instanz her und erstellen Sie eine Datenbank und eine Tabelle.
Starten Sie eine psql-Sitzung:
$ docker exec -it my_postgres psql -U postgres
Erstellen Sie eine neue Datenbank:
Stellen Sie eine Verbindung zur neuen Datenbank her:
Erstellen Sie eine Tabelle und fügen Sie einige Daten ein:
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
title VARCHAR(100),
e mail VARCHAR(100)
);
INSERT INTO customers (title, e mail) VALUES ('Abby', 'abby@instance.com'), ('Bob', 'bob@instance.com');
Führen Sie eine Beispielabfrage aus:
Ausgabe:
id | title | e mail
----+------+------------------
1 | Abby | abby@instance.com
2 | Bob | bob@instance.com
Schritt 6: Stoppen und Entfernen des Containers
Stoppen Sie den laufenden Container und entfernen Sie ihn. Wir tun dies, damit wir testen können, ob die Daten auch dann erhalten bleiben, wenn der Container gestoppt wird.
$ docker cease my_postgres
$ docker rm my_postgres
Schritt 7: Führen Sie den Postgres-Container mit demselben Quantity erneut aus
Starten Sie einen neuen PostgreSQL-Container mit demselben Volumen, um die Datenpersistenz sicherzustellen.
$ docker run -d
--name my_postgres
-e POSTGRES_PASSWORD=mysecretpassword
-v pgdata:/var/lib/postgresql/information
-p 5432:5432
postgres
Stellen Sie eine Verbindung mit der Postgres-Instanz her und überprüfen Sie, ob die Daten erhalten bleiben.
Öffnen Sie eine psql-Sitzung:
$ docker exec -it my_postgres psql -U postgres
Verbinden Sie sich mit dem mydb
Datenbank:
Überprüfen Sie die Daten im customers
Tisch:
Sie sollten immer noch die Ausgabe sehen:
id | title | e mail
----+------+------------------
1 | Abby | abby@instance.com
2 | Bob | bob@instance.com
Ich hoffe, dieses Tutorial hilft Ihnen zu verstehen, wie Sie Volumes zum persistenten Speichern von Daten bei der Arbeit mit Docker verwenden.
Weitere Ressourcen
Weitere Informationen finden Sie in den folgenden Ressourcen:
Viel Spaß beim Entdecken!
Bala Priya C ist Entwicklerin und technische Redakteurin aus Indien. Sie arbeitet gerne an der Schnittstelle zwischen Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Ihre Interessens- und Fachgebiete umfassen DevOps, Datenwissenschaft und natürliche Sprachverarbeitung. Sie liest, schreibt, programmiert und trinkt gerne Kaffee! Derzeit arbeitet sie daran, ihr Wissen zu lernen und mit der Entwickler-Neighborhood zu teilen, indem sie Tutorials, Anleitungen, Meinungsbeiträge und mehr verfasst. Bala erstellt auch ansprechende Ressourcenübersichten und Programmier-Tutorials.