Docker®

Installation von Docker® auf TwinCAT Runtime Linux®

Stellen Sie eine Verbindung zum PackageManager von TwinCAT Runtime Linux® her, um das entsprechende Paket zu installieren.
1. Führen Sie eine Aktualisierung der Pakete durch.
sudo apt update
2. Installieren Sie den offizielle GPG key von Docker®.
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
3. Fügen Sie das Docker® Repository hinzu.
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Führen Sie eine Aktualisierung der Pakete durch.
sudo apt update
5. Installieren Sie das Docker® Paket.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. Überprüfen Sie, ob Docker® erfolgreich gestartet wurde.
sudo systemctl status docker
7. Starten Sie Docker®, sofern es noch nicht läuft.
Docker® wurde erfolgreich installiert.
sudo systemctl start docker

Erstellen der YAML-Datei

1. Erstellen Sie im Home Ordner eine neue Ordner Struktur.
mkdir -p docker/postgresql17 docker/pgadmin
2. Erstellen Sie eine YAML-Datei für Postgres.
echo "# Datei: /home/Administrator/docker/postgresql17/compose.yaml
services:
  postgres17:
    image: postgres:17
    ports:
      - 5432:5432
    restart: always
    volumes:
      - pgdata17:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: 1
    networks:
      - pgNetwork
volumes:
  pgdata17:
    name: pgdata17
networks:
  pgNetwork:
    name: pgNetwork" > /home/Administrator/docker/postgresql17/compose.yaml
3. Möchten Sie mittels einer UI auf Ihre Datenbank zugreifen, erstellen Sie zusätzlich eine YAML-Datei für pgAdmin
echo "# Datei: /home/Administrator/docker/pgadmin/compose.yaml
services:
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 5050:80
    restart: always
    volumes:
      - pgadmindata:/var/lib/pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: Default@beckhoff.com
      PGADMIN_DEFAULT_PASSWORD: 1
    networks:
      - pgNetwork
volumes:
  pgadmindata:
    name: pgadmindata
networks:
  pgNetwork:
    name: pgNetwork" > /home/Administrator/docker/pgadmin/compose.yaml
4. Wenn Sie eine YAML-Datei für PostgreSQL und pgAdmin erstellt haben, erstellen Sie eine weitere Datei, um beide Dateien zentral anzusprechen.
echo "# Datei: /home/Administrator/docker/compose.yaml
include:
   - postgresql17/compose.yaml
   - pgadmin/compose.yaml" > /home/Administrator/docker/compose.yaml
5. Wechseln Sie nun in den Docker® Ordner sofern Sie alle YAML-Dateien erstellt haben. Haben Sie nur die PostgreSQL YAML-Datei erstellt gehen Sie bitte in den Ordner „“
cd /home/Administrator/docker/
6. Erstellen Sie Docker® Container und starten Sie diesen direkt an.
Die Docker® Container wurden erfolgreich erstellt und an gestartet.
sudo docker compose up -d
Docker® 1:

Nach dem Starten des Dockers® kann es sein, dass noch nicht alle Services innerhalb des Dockers® zur Verfügung stehen. Es kann eine kurze Zeit dauern, bis diese aufgestartet wurden.

Docker® 2:

Um die Docker® Container auch außerhalb von einem anderen System zu erreichen, muss die Firewall entsprechend konfiguriert werden. PostgreSQL Port: 5432 und pgAdmin Port: 5050

Einstellungen der Firewall

1. Erstellen Sie eine Konfigurationsdatei im Verzeichnis /etc/nftables.conf.d/  beispielsweise mit dem Namen 00-postgreDocker.conf
sudo nano /etc/nftables.conf.d/00-postgreDocker.conf
2. Fügen Sie folgenden Inhalt ein und passen Sie die Werte an Ihre Netzwerkanforderungen an:
table inet filter {
  chain input {
    # accept PostgresSQL
    tcp dport 5432 accept
  }
  chain input {
    # accept pgAdmin
    tcp dport 5050 accept
  }
}
3. Speichern und schließen Sie die Konfigurationsdatei.
4. Laden Sie die neue Regel mit dem Befehl
sudo systemctl reload nftables
5. Überprüfen Sie die Einstellungen und stellen Sie sicher, dass die Konfiguration korrekt angewendet wurde.
Der Port 5432 und 5050 wurden für PostgreSQL freigegeben.
sudo nft list ruleset

pgAdmin mit der Datenbank verbinden.

1. Verbinden Sie sich zum Online-Interface von pgAdmin.
http://<IP-Adresse>:5050/
2. Melden Sie sich mit den Anmeldedaten aus der docker/pgadmin/compose.yaml an.
PGADMIN_DEFAULT_EMAIL: Default@beckhoff.com
PGADMIN_DEFAULT_PASSWORD: 1
3. Machen Sie auf Server ein Rechtsklick.
4. Wählen Sie im Kontextmenü Register/Server… aus.
5. Geben Sie als Name den Anzeigenamen der PostgreSQL Datenbank an.
6. Wechseln Sie auf den Reiter Connection.
7. Tragen Sie unter Host name/address die IP ihres Systems ein, um mit der Datenbank zu kommunizieren.
8. Tragen Sie als Username „postgres“ ein.
9. Tragen Sie als Password, das in der docker/postgresql17/compose.yaml eingestellte Passwort ein.
POSTGRES_PASSWORD: 1
Die Verbindung zur Datenbank wurde erfolgreich hergestellt. Sie können nun über pgAdmin Ihre Datenbank administrieren.