Repositories
Ein Repository ist ein LUKS-verschlüsseltes Disk-Image auf einem entfernten Server. Nach dem Einbinden bietet es:
- Ein isoliertes Dateisystem für Ihre Anwendungsdaten
- Einen dedizierten Docker-Daemon (getrennt vom Docker des Hosts)
- Einzigartige Loopback-IPs für jeden Dienst innerhalb eines /26-Subnetzes
Repository erstellen
rdc repo create --name my-app -m server-1 --size 10G
| Option | Erforderlich | Beschreibung |
|---|---|---|
-m, --machine <name> | Ja | Zielmaschine, auf der das Repository erstellt wird. |
--size <size> | Ja | Größe des verschlüsselten Disk-Images (z. B. 5G, 10G, 50G). |
--skip-router-restart | No | Skip restarting the route server after the operation |
Die Ausgabe zeigt drei automatisch generierte Werte:
- Repository-GUID — Eine UUID, die das verschlüsselte Disk-Image auf dem Server identifiziert.
- Credential — Eine zufällige Passphrase zum Ver- und Entschlüsseln des LUKS-Volumes.
- Netzwerk-ID — Eine Ganzzahl (beginnend bei 2816, um 64 inkrementiert), die das IP-Subnetz für die Dienste dieses Repositories bestimmt.
Bewahren Sie das Credential sicher auf. Es ist der Verschlüsselungsschlüssel für Ihr Repository. Bei Verlust können die Daten nicht wiederhergestellt werden. Das Credential wird in Ihrer lokalen
config.jsongespeichert, jedoch nicht auf dem Server.
Einbinden und Aushängen
Das Einbinden entschlüsselt und macht das Repository-Dateisystem zugänglich. Das Aushängen schließt das verschlüsselte Volume.
rdc repo mount --name my-app -m server-1 # Entschlüsseln und einbinden
rdc repo unmount --name my-app -m server-1 # Aushängen und wieder verschlüsseln
| Option | Beschreibung |
|---|---|
--checkpoint | Einen Checkpoint vor dem Einbinden/Aushängen erstellen |
--skip-router-restart | Skip restarting the route server after the operation |
Status prüfen
rdc repo status --name my-app -m server-1
Repositories auflisten
rdc repo list -m server-1
Größe ändern
Das Repository auf eine exakte Größe setzen oder um einen bestimmten Betrag erweitern:
rdc repo resize --name my-app -m server-1 --size 20G # Auf exakte Größe setzen
rdc repo expand --name my-app -m server-1 --size 5G # 5G zur aktuellen Größe hinzufügen
Das Repository muss vor der Größenänderung ausgehängt werden.
Forken
Eine Kopie eines vorhandenen Repositories in seinem aktuellen Zustand erstellen:
rdc repo fork --parent my-app --tag staging -m server-1
Forks verwenden das Name:Tag-Modell: Der resultierende Fork heisst my-app:staging. Dies erstellt eine neue verschlüsselte Kopie mit eigener GUID und Netzwerk-ID, wobei der Name des übergeordneten Repositories geteilt wird. Der Fork teilt sich das gleiche LUKS-Credential wie das übergeordnete Repository.
Validieren
Die Dateisystemintegrität eines Repositories prüfen:
rdc repo validate --name my-app -m server-1
Eigentümerschaft
Die Dateieigentümerschaft innerhalb eines Repositories auf den universellen Benutzer (UID 7111) setzen. Dies ist typischerweise erforderlich, nachdem Dateien von Ihrer Workstation hochgeladen wurden, die mit Ihrer lokalen UID ankommen.
rdc repo ownership --name my-app -m server-1
Der Befehl erkennt automatisch Docker-Container-Datenverzeichnisse (beschreibbare Bind-Mounts) und schließt sie aus. Dies verhindert das Beschädigen von Containern, die Dateien mit eigenen UIDs verwalten (z. B. MariaDB=999, www-data=33).
| Option | Beschreibung |
|---|---|
--uid <uid> | Eine benutzerdefinierte UID anstelle von 7111 setzen |
--skip-router-restart | Skip restarting the route server after the operation |
Um die Eigentümerschaft aller Dateien zu erzwingen, einschließlich Container-Daten:
rdc repo ownership --name my-app -m server-1
Siehe den Migrationsleitfaden für eine vollständige Anleitung, wann und wie die Eigentümerschaft bei der Projektmigration verwendet wird.
Vorlage
Eine Vorlage anwenden, um ein Repository mit Dateien zu initialisieren:
rdc repo template apply --name my-template -m server-1 -r my-app --file ./my-template.tar.gz
Löschen
Ein Repository und alle darin enthaltenen Daten dauerhaft zerstören:
rdc repo delete --name my-app -m server-1
Dies zerstört dauerhaft das verschlüsselte Disk-Image. Diese Aktion kann nicht rückgängig gemacht werden.