Autor Thema: [offtopic] Docker images und Zugriff auf Shares  (Gelesen 1211 mal)

Offline bugster_de

  • Sr. Member
  • ****
  • Beiträge: 849
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #30 am: 07 August 2018, 13:44:25 »
kam mir auch schon in den Sinn auf nginx zu schwenken; man hört ja nur Gutes. Aber die verschiedenen Apache Configs habe ich auf dem heutigen Server bereits vorhanden, so dass sie nur angepasst werden müssen. NGINX hab ich noch nie gemacht und das möchte ich mir im ersten Schritt nicht auch gleich noch antun. Mit der Docker Nutzung habe ich ja die schöne Möglichkeit, alles nach einander umzustellen. Sprich erstmal mit Apache starten und wenn das alles läuft, mach ichs mit einem nginx Container wieder kaputt so dass ichs dann wieder reparieren kann :-)


Offline bugster_de

  • Sr. Member
  • ****
  • Beiträge: 849
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #31 am: 07 August 2018, 14:01:28 »
aber eins noch zu den Usern von oben:
wenn ich das richtig sehe, dann sollte der User, der auf dem Host den Container startet nicht der gleiche User sein, wie der auf den der root im Container gemapped wird. Und der mapping user darf auch nicht zur Gruppe docker auf dem Host gehören, denn sonst kann root im Container sich einen neuen Container starten und damit Zugriff auf den Host kriegen.

Sprich:
User docker_creator auf dem Host gehört zur Gruppe docker und führt docker run, docker start etc. aus
User docker_mapper auf dem Host wird in der daemon.json eingetragen und auf ihn wird root und aufwärts gemapped. Er darf nicht in der Gruppe Docker sein.
Die ID von docker_creator darf nicht im Mapping Bereich von docker_mapper wie in /etc/subuid angeben liegen, denn sonst kann man im Container so lange die User ID hochzählen, bis man einen User hat, der auf den docker daemon zugreifen darf und kann damit auf den Host springen.

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4330
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #32 am: 07 August 2018, 19:07:48 »
Wir haben hier einen Proxi auf den Wird-Computer gesetzt. Quasi als "Loadbalancer". Ob der Container dann apache, nginx oder irgend etwas anderes hat, ist dem proxy exgal.

Dazu dann noch ein Script geschrieben, was auf docker-events reagiert und automatisch die Config für den proxy baut.

der jwilder-proxy hat den Nacheil, das er in allen docker-proxy-netzen sein muß. Steht dort auch als Einschränkung. Dadurch, das wir den proxy auf dem Wird-Rechner haben, können wir viele docker-netzwerke abbilden und auch unter kupernetis oder docker-swarm arbeiten. Die docker-Container slber müssen dann auch nicht extern erreichbar sein (sofern es http/https-Protokolle sind)
« Letzte Änderung: 08 August 2018, 09:31:19 von Wernieman »
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline bugster_de

  • Sr. Member
  • ****
  • Beiträge: 849
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #33 am: 08 August 2018, 08:54:13 »
@Wernieman: ich verstehe grösstenteils nur Bahnhof :-)

Zitat
Wir haben hier en Proxa auf den Wird-Computer gesetzt.
Wenn ich den Satz mal umschreibe: "wir haben hier einen Proxy auf den Wirt-Computer gesetzt". Richtig?
heisst also, der Proxy Server läuft nicht im Docker sondern direkt auf der Host Maschine? Wenn man den dünn hält (er also nur Proxy macht), dann hat man auch das Thema SW Update für den Proxy-Server gut im Griff.

Ich habe halt die Erfahrung gemacht, dass so mancher Update von Apache dann das ein oder andere Modul nicht mehr zur Verfügung hatte. So geht z.B. meine SVN Server seit geraumer Zeit nicht mehr von aussen zu erreichen, weil bei irgendeinem Apache Update ein Modul wohl raus geschmissen wurde. Ich habe zwar noch eine ganze Weile versucht das wieder hin zu bekommen, aber nicht geklappt und so habe ich dann halt den SVN Zugriff von aussen erstmal raus geschmissen. Und genau von solchen Querabhängigkeiten will ich weg. Jede Applikation kriegt ihren eigenen Container / Compose und somit kann jede Applikation einzeln einen Update erfahren bzw. ein Update kann erstmal ausprobiert werden ohne dass es ggf. gleich Querwirkungen gibt, die man im Moment des Updates noch gar nicht merkt.
Ganz beliebt im Spiel der Querwirkungen ist auch owncloud, php-Versionen und php-Module etc.

Wie gesagt, ich bin Privatmann mit Familie und auch anderen Hobbies. Sprich ein update muß so einfach sein, dass ich es ohne große Orgie einmal wöchentlich machen kann. Es muß aber auch komplex genug sein, dass ich es nicht mal eben auf dem Sofa beim Fernsehen ohen Nachdenken mache und mir dann was zerschiesse.
Deshalb habe ich mir jetzt einen extra User angelegt, der zur Gruppe docker gehört der aber kein Shell Login hat. Somit muß ich immer sudo -u mein_docker_user docker xxx machen. Diese Befehlszeile ist lang genug, damit man mal kurz nachdenken muß, was man da tut aber nicht zu komplex, so dass man es sich nicht merken kann.
Die Container selber haben nun immer drei Standard-Volumes, die auf den Host gemappt sind:
- Daten (also z.B. die html Seiten des Webservers)
- Konfigurationen (also z.B. alles was in /etc/apache2 drin steht)
- logfiles, so dass ich die mit einem einfachen Script auf dem Host einsammeln kann und automatisiert durchforsten

Ablauf zum Update eines Containes wäre dann wie folgt
- container stoppen
- Kopie der Daten und Konfiguration erstellen
- Image auf Basis Dockerfie neu bauen, da ich in meinen Dockerfiles am Anfang erst mal apt-get update, upgrade etc. drin habe
- Container wieder neu starten

Die Speicherung der Daten und Konfigs in einem Host Volume hat den Vorteil, dass sie automatisch in meinem Backup enthalten sind. Ich habe schon beim jetzigen Server auf allen Festplatten im Server drei Unterverzeichnisse: Hoch, Mittel, Egal.
Alles was in Hoch drin ist hat ein doppeltes Backup: es wird auf eine zweite Platte im Rechner ge-tared und als rotierendes Backup abgelegt sowie mittels rsync auf eine Cloud ausserhalb des Hauses gespiegelt (rsync löscht hier keine Files sondern fügt nur die neuen hinzu bzw. macht den Update der bestehenden und ist nur unidirektional konfiguriert)
Alles was in Mittel drin ist ist nur im rotierenden Backup auf die zweite Platte enthalten. Das backup Script auf dem Host klappert alle Festplatten ab und sicher genau nach diesem Muster. Das Script selber läuft unter einem extra User, der auf den Host nur Leserechte hat und somit, selbst wenn es mal "Amok" läuft auch nichts kaputt machen kann.
Alles was in Egal drin ist, wird gar nicht ge-backupt.
Somit also Daten und Konfiguration nach Hoch, Logfiles nach Egal.

Uff. Overkill? Vielleicht. Aber mein Bruder hatte seine ganzen privaten Fotos nur auf seinem Laptop und als da die Festplatte kaputt war, waren die Familienbilder inkl. der Kinderfotos aus 10 Jahren futsch. Er hat über 1.000,- € bei einem Festplatten-Recovery Betrieb bezahlt und war danach froh, dass sie zumindest einige der Kinderbilder retten konnten. Das ist der Nachteil der digitalen Zeit: man muß sich halt echt um das Backup kümmern. Aber das sagt ja deine Signatur schon aus :-)




Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 4330
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #34 am: 08 August 2018, 09:38:13 »
"inkl. der Kinderfotos aus 10 Jahren futsch"
..... 4 ....

Die Obige Anzahl gibt die Laufende Anzahl Leute wieder, von denen ich weiß, das Sie Bilder durch Rechnerdefekte verloren haben.  2 davon Kinderbilder. Das zum Thema Backup ....
(In der Zahl ist Dein Beispiel includiert, war vorher also 3...)

nginx hat den Vorteil, das er schlank und supereinfach als Proxy ist. Kann ich empfehlen. Alternativ wäre hier z.B: ein richtiger Proxy wie ha-proxy (oder squid etc.), aber dort geht die Komplexität wieder hoch.

Also ein Linux + docker + nginx ist relativ einfach upzudaten. Da Schwierigste ist dabei eigentlich docker.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Offline bugster_de

  • Sr. Member
  • ****
  • Beiträge: 849
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #35 am: 09 August 2018, 09:05:39 »
Ok, ok ich hab es ja verstanden: nginx ist die Macht 😀
Erstes Ziel ist es aber trotzdem den neuen Server schnell produktiv zu bekommen und die komme ich im ersten Schuss schneller hin, wenn ich die bestehenden Kontakte umziehe und anpasse. Im zweiten Schritt kann ich dann einzelne Applikationen durch was anderes ersetzen.

Zitat
Da Schwierigste ist dabei eigentlich docker.
Dem ist so, da ja jedes Image eigene Spezialitäten mit bringt. Ich habe mir jetzt jeweils die Kommandozeilen für die Container notiert überlege aber gerade, ob ich mir nicht ein Script pro Container erstelleelches die Update Prozedur wie oben beschrieben automatisiert.
Ich hab gestern Abend noch mein Wordpress mit MySQL umgezogen. Es war eine echte Kommandozeilen Orgie.

Offline bugster_de

  • Sr. Member
  • ****
  • Beiträge: 849
Antw:[offtopic] Docker images und Zugriff auf Shares
« Antwort #36 am: 14 August 2018, 16:00:15 »
Hi,

so die wichtigsten Dienste, die ich brauche, um den Server in Betrieb gehen zu lassen laufen jetzt unter Docker.  Allerdings sind alle Container auf einen User des Host gemappt. Ich habe nicht heraus gefunden, wie ich für jeden Container einen extra User nehme und ich in einem halben Jahr noch weiß, was ich da getrieben habe.

Zitat
Lies Dich mal in "docker-compose" ein. Wird von den meisten Stiefmützterlich behandelt, macht aber langfristig das Leben einfacher.
Hab ich getan und auch erste Container Ansammlungen damit gebaut. Das hat mich aber zwei Nachtschichten gekostet. Teils, weil docker-compose, sagen wir mal, nich im Aufbau befindlich ist und teils weil bestimmt Kombinationen aus Images einfach nicht zusammen laufen. So habe ich es z.B. nicht geschafft ownCloud 10.0.9 und mysql 8 aus dem Container raus ans Laufen zu bekommen. Ich musst OC 10.0.3 und mysql 5.6 nehmen und danach ind en jeweiligen Containern updates machen. wordpress mit mysql 8 funktioniert hingegen top.

Damit ich es in Zukunft leichter habe, habe ich mir jetzt für jede Container Sammlung drei Dateien gemacht
- das dockerfile (logisch)
- eine .env Datei (auch logisch)
- eine Batch-Datei, die eventuell vorhandene Daten der Container auf dem Laufwerk kopiert, dann die docker-compose oder im Falle eines Eigenbau Images die docker build und create Funktionen mit der langen Aufrufliste an Parametern aufruft. Das dient auch gleichzeitig der Dokumentation.

Desweiteren agiert immer noch der Apache als Proxy Server und der Server war auch schon mal probehalber am Netz. Geht also soweit und nun kann ich mich beim nächsten Regentag an den Umzug der Festplatten machen

 

decade-submarginal