Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ich nutze den Docker-Container noch gar nicht, da der Timberwolf-Server noch nicht verfügbar ist. Daher ist meine Edomi-Instanz aktuell ein Proxmox-Container.
Aber unabhängig davon: Soviel ich weiss, muss das Einbinden anderer Pfade auch vom Container unterstützt werden. pfischi: ist dem denn so?
Ich weiss nicht, ob ich die Frage richtig verstanden habe, aber der Container selbst bleibt "dumm". Das Mapping der Pfade geschieht in diesem Fall ausschließlich über die
Code:
docker run
Syntax. Der so eingebundene Host-Pfad "überlagert den Containerpfad, alle Daten die der Container dann schreibt sind dann persistent. (das gilt für andere Richtung Host nach Container genauso).
Ich hoffe das beantwortet die Frage
Edit: ich selber binde zum Beispiel zusätzlich (für meine Smarthome.py-Instanz) den Ordner "/var/log" des Containers persistent ein.
Nutzt ihr denn die Möglichkeit andere Pfade einzubinden?
Edit: für Backups, Logging etc?
Ich nutze den Docker-Container noch gar nicht, da der Timberwolf-Server noch nicht verfügbar ist. Daher ist meine Edomi-Instanz aktuell ein Proxmox-Container.
Aber unabhängig davon: Soviel ich weiss, muss das Einbinden anderer Pfade auch vom Container unterstützt werden. pfischi: ist dem denn so?
Bei Edomi aber nicht schlimm, Edomi kann im Container ein Update erfahren. Hatte ich auch gemacht, 1.48 installiert und direkt Update auf 1.49 gemacht.
Ich bin bei Updates generell vorsichtig: Wenns läuft und keine besonderen Funktionen dazu kommen, lieber laufen lassen.
Du kannst also, wenn du nicht den Container explizit löscht, den erstellten Container nicht überschreiben und somit bleiben alle Daten vorhanden.
Darum ging es ihm aber wohl nicht sondern um den Update-Fall. Wenn es eine neue Version des Docker-Images gibt, dann muss er einen neuen Container bauen und damit wären die Daten erstmal weg. Natürlich wird das solange fehlschlagen, solange der "alte" Container nicht gelöscht wurde (oder andere Ports verwendet werden). Aber das ändert nichts an der Tatsache bzgl. den in einem neuen Container nicht vorhandenen Daten.
Du kannst unendliche Male start/stop machen, deine Daten bleiben erhalten!
Wenn du den run-Befehl nochmal startest, wird er dir einen Fehler zurückgeben mit der Info, dass die Ports und der Name schon in Verwendung sind. Du kannst also, wenn du nicht den Container explizit löscht, den erstellten Container nicht überschreiben und somit bleiben alle Daten vorhanden.
Damit ich das besser nachvollziehen kann (und vielleicht andere Docker-Neulinge), ein Beispiel, bitte korrigiert mich wenn ich was falsch verstanden habe
nun beende ich den Container (Edomi herunterfahren lassen wir der Übersichtlichkeit halber hier mal weg)
docker stop edomi
und starte es neu
docker start edomi
-> Meine Änderungen (Visu, Zeitschaltuhren, ...) sind noch da. Sie sind aber nicht mehr da wenn ich den Container mit dem ersten Befehl neu erstelle. (Richtig?)
Solange ich nichts anderes mache, bleiben meine Änderungen in einem zusätzlichen Volume (?) erhalten. Das Backup aus /var/edomi-backups kann ich bei Bedarf ja wieder einspielen. Wenn ich beim Erstellen des Containers also zusätzlich -v /var/edomi-backups /einlokalerpfad anlege bin ich safe was dass Sichern und Wiederherstellen von Edomi betrifft. Oder übersehe ich etwas?
Sehe ich das richtig, ich muss beim erstellen des Containers entscheiden welche Ports und Volumes ich freigeben will, und kann das nicht mehr ändern wenn merke dass z.B. was fehlt? Oder was hinzukommt? Dann starte ich doch wieder vom Image, und meine anderen Änderungen sind weg...
Genau das ist ja der grosse Vorteil von Docker! Das Image ist immer der exakt gleiche Startpunkt und im Betrieb wird am Image i.d.R. nichts geändert resp. allfällige Änderungen am Image sind mit dem Start einen neuen Containers weg.
Wie macht ihr das mit den Änderungen in Datenbank und www Ordner? Als Volume? Wenn ich das vor dem Starten des Containers festlege (zB /var/lib), bekomme ich da nicht ein Henne-Ei Problem? Weil so ja ein Pfad des Hosts in den Container gemounted wird und nicht andersherum.
Also eigentlich ist das kein Henne-Ei-Problem sondern erfordert lediglich ein gewisses Umdenken, was den Betrieb betrifft. Das mit den eigenen IP-Adressen für jeden Container ist dabei eines der üblichen "Initialprobleme", welche bei den ersten Schritten mit Docker auftreten. Habe ich nun schon oft genau so erlebt.
Der springende Punkt ist genau der, dass persistente Daten explizit gehandhabt werden müssen. Dabei gibt es nun zwei Möglichkeiten. Entweder es werden Host-Verzeichnisse in den Container gemountet oder es werden explizite Daten-Container verwendet, welche schlussendlich aber auch in den Container gemountet werden. Beide Varianten haben ihre Vor- und Nachteile.
Für Portainer habe ich mich ebenfalls entschieden. Und ich muss zugeben dass nach ersten Tests das Thema IP nicht so wichtig zu sein scheint wie ich erwartet hatte.
Sehe ich das richtig, ich muss beim erstellen des Containers entscheiden welche Ports und Volumes ich freigeben will, und kann das nicht mehr ändern wenn merke dass z.B. was fehlt? Oder was hinzukommt? Dann starte ich doch wieder vom Image, und meine anderen Änderungen sind weg.... (?)
Wie macht ihr das mit den Änderungen in Datenbank und www Ordner? Als Volume? Wenn ich das vor dem Starten des Containers festlege (zB /var/lib), bekomme ich da nicht ein Henne-Ei Problem? Weil so ja ein Pfad des Hosts in den Container gemounted wird und nicht andersherum.
Dein Szenario schreit danach alles in Docker-Container zu packen.
Wahrscheinlich hast Du Recht, und was Du beschreibst klingt nach einem idealen Szenario. Und wenn das allermeiste / alles in Containern läuft - warum nicht. Nur der Weg dahin ist für mich (noch) nicht überschaubar, denn ich kann und will nicht z.B. den Asterisk in einen Container verschieben und dann während des Arbeitstages feststellen dass das jetzt nicht so gut funktioniert hat... ein dutzend potentielle kleine Baustellen.
Dein Szenario schreit danach alles in Docker-Container zu packen. Jeder Service kann dann einfach per Hostname=Containernamen kommunizieren. Den ELK-Stack nutze ich selber als Docker, genauso den Asterisk-Server, sowie Nextcloud. Die Daten der einzelnen Container sind persistent auf einer NAS gemounted und werden bei jedem Erstellen der einzelnen Container einfach dazu gemapped. Hinzu kommen bei mir noch Plex, OpenVPN, mehrer nginx-Container. Achja, eibd hat auch einen eigenen Container. Jeder Container kennt sich per Namen, feste IPs brauch es nicht mehr. Genau darin liegt ja u.a. die Stärke von Docker. Möchtest du es anders haben, beraubst du dich der Felxibilität und Portabilität. All die aufgezählten Container sind insgesamt 10 Dockefiles, die innerhalb von 5min gebaut und voll funtionsähig sind (inkl. aller Daten).
Herzlichen Glückwunsch zu Deinem Beschriftungsgerät.
Ja, das merke ich. Hast Du soweit Ahnung von Docker dass Du meine eigentliche Frage beantworten kannst? Wenn nein, ... ich sehe nicht warum Du mit mir die Sinnhaftigkeit meiner Frage diskutieren musst.
(Und vielleicht finde ich es ja scheisse irgendwelche Schildchen auf meine Geräte zu kleben. Oh mann.)
Freue mich wenn das jetzt niemanden davon abhält sein Wissen zu teilen - danke im Voraus
Wenn du für dein Problem den Sinn erklären könntest, dann wäre eine Hilfe möglich
Ich habe mehrere, teilweise bewusst extrem simple Möglichkeiten gegeben für das, was du als Problembeschreibung gibst.
Selbst mit eigener IP wirst du weiter einen Port angeben müssen (hier mag man mich gerne korrigieren). Wo ist also die Hilfe für den Aussenstehenden, wenn du eine eigene IP angibst?
Aber nun gut, anscheinend fehlt mir die Fantasie, wieso man eine absolute nachhaltige einfache Dockerlösung verkomplizieren muss. Hier Mal ein Link, was Docker so genial macht und dein Vorhaben nicht wirklich schlüssig erscheinen lässt: https://www.google.de/amp/s/entwickl...26443.html/amp
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: