Erstellen Sie eine Docker Compose-Datei für eine Postgres-Instanz
Bitte konfigurieren Sie eine Postgresql-Instanz in Docker, um Anfragen auf Port 4121 anzunehmen. ### 1. Docker installieren
Wenn Sie Docker noch nicht auf Ihrem Rechner installiert haben, können Sie es von der offiziellen Docker-Website [hier](https://www.docker.com/products/docker-desktop) herunterladen.

### 2. Öffnen Sie ein Terminalfenster oder die Eingabeaufforderung
Sie müssen ein Terminalfenster oder die Eingabeaufforderung öffnen, um die folgenden Befehle auszuführen.

### 3. Das PostgreSQL-Image herunterladen
Verwenden Sie den folgenden Befehl, um das PostgreSQL-Image von Docker Hub herunterzuladen:

```
docker pull postgres
```


### 4. Einen Docker-Container mit dem PostgreSQL-Image erstellen
Verwenden Sie den folgenden Befehl, um einen Docker-Container mit dem PostgreSQL-Image zu erstellen. Setzen Sie das PostgreSQL-Passwort auf "mysecretpassword" und mappen Sie den Port 4121 auf dem Host-Rechner auf den Port 5432 im Container:

```
docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 4121:5432 -d postgres
```

### 5. Überprüfen Sie, ob der Container läuft
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Container läuft:

```
docker ps
```


### 6. Verbinden Sie sich mit der PostgreSQL-Instanz
Verwenden Sie den folgenden Befehl, um sich mit der PostgreSQL-Instanz zu verbinden, die in dem Docker-Container läuft:


```
psql -h localhost -p 4121 -U postgres
```


### 7. Führen Sie SQL-Abfragen aus
Sobald Sie mit der PostgreSQL-Instanz verbunden sind, können Sie SQL-Abfragen ausführen, wie Sie es mit jeder anderen PostgreSQL-Datenbank tun würden.
Um eine Docker Compose-Datei für eine PostgreSQL-Instanz zu erstellen, erstellen Sie zuerst eine neue Datei mit dem Namen `docker-compose.yml` in einem Verzeichnis Ihrer Wahl. Öffnen Sie die Datei mit einem Texteditor und fügen Sie den folgenden Inhalt ein:
```yaml
version: "3.9"

services:
  postgres:
    image: postgres
    container_name: my-postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: mysecretpassword
      POSTGRES_DB: mydatabase
    ports:
      - "4121:5432"
    volumes:
      - postgres-data:/var/lib/postgresql/data

volumes:
  postgres-data:
```

Diese Konfiguration erstellt einen PostgreSQL-Dienst unter Verwendung des offiziellen PostgreSQL-Images. Es setzt den PostgreSQL-Benutzernamen, das Passwort und den Datenbanknamen mit Umgebungsvariablen. Der Container mapt den Port 4121 auf dem Host-Rechner auf den Port 5432 im Container. Ein benanntes Volume, postgres-data, wird verwendet, um die PostgreSQL-Daten zu speichern und sicherzustellen, dass sie auch dann erhalten bleiben, wenn der Container entfernt wird.

Um die PostgreSQL-Instanz mit Docker Compose zu starten, öffnen Sie ein Terminalfenster oder die Eingabeaufforderung im Verzeichnis, in dem Sie die docker-compose.yml-Datei erstellt haben, und führen Sie aus:

```bash
docker-compose up -d
```

Dieser Befehl startet die in der docker-compose.yml-Datei definierten Dienste im Hintergrundmodus, sodass Sie das Terminal oder die Eingabeaufforderung weiterhin verwenden können. Um die Dienste zu stoppen und die Container zu entfernen, führen Sie aus:

```bash
docker-compose down
```

Denken Sie daran, "mysecretpassword" durch ein sicheres Passwort Ihrer Wahl für die PostgreSQL-Instanz zu ersetzen.