Jump to content

Neuling - ein paar Fragen zu Docker


Recommended Posts

Hi zusammen,

 

habe mir nun nach langem testen eine Unraid Lizenz gekauft!

Bis extrem zufrieden mit dem Server! Es bieten die hier durch Docker / VM / NAS Funktionen / etc... viele Möglichkeiten! 🙂

 

Jetzt habe ich eine Frage zu Docker:

Wie kann ich ein bestehendes Docker Image erweitern (z.b. einen Apache installieren) und das Docker Image dann klonen, damit ein "fertiges" Docker Image rauskommt mit installiertem Apache, ohne das ich Apache nach jedem Neustart neu installieren muss!?

Das sollte doch relativ einfach gehen, oder?

 

Danke schon mal im Voraus!

 

Gruß Bernd

 

 

Link to comment
7 hours ago, Bernd Matthießen said:

Wie kann ich ein bestehendes Docker Image erweitern (z.b. einen Apache installieren) und das Docker Image dann klonen, damit ein "fertiges" Docker Image rauskommt mit installiertem Apache, ohne das ich Apache nach jedem Neustart neu installieren muss!?

da die Frage jetzt für mich nicht ganz klar ist ...

 

Du willst einen Docker, sagen wir mal zum Beispiel hier calibre-web mit apache ergänzen ?

image.png.b1c8f0afd9d0682e5784dfb600611d89.png

 

sodass dies dann ein calibre docker MIT inkludiertem apache Server wäre ?

 

wenn dem so wäre ... das Original forken, entsprechend anpassen und deinen eigenen Docker bereitstellen ... das vorhandene image ist ja von dem jeweiligen Coder in seiner Form so da, das kannst du nicht "ergänzen" und den build ändern ...

 

sprich, entweder du baust dir dein eigenes Image inklusive apache oder ... du baust dir eine Routine das apache nach jedem update wieder neu installiert wird in den besagten docker ...

 

der usecase wäre jetzt noch interessant, weil, was willst du mit apache in einem "anderen" docker wo es per se nicht vorgesehen ist, und .. es gibt auch fertige apache docker images für alles Mögliche ... vielleicht einen anderen Ansatz nehmen ?

Link to comment

Hi zusammen,

 

@Revan335:

1 hour ago, Revan335 said:

Meinst du sowas?

 

Die Tipps sind zwar gut, aber das meinte ich nicht!

 

@alturismo:

Das mit dem Apache war ja nur ein Beispiel! Mir ist durchaus bewusst, das es genügend "Apache" Docker Images gibt!
Aber Du hast es schon richtig dargestellt:

43 minutes ago, alturismo said:

Du willst einen Docker, sagen wir mal zum Beispiel hier calibre-web mit apache ergänzen ?

......

sodass dies dann ein calibre docker MIT inkludiertem apache Server wäre ?

wenn dem so wäre ... das Original forken, entsprechend anpassen und deinen eigenen Docker bereitstellen ... das vorhandene image ist ja von dem jeweiligen Coder in seiner Form so da, das kannst du nicht "ergänzen" und den build ändern ...

 

Um das "forken" und eigenen Docker bereitstellen geht es mir! Also hier dann ein Image, welches dann "ein calibre docker MIT inkludiertem apache Server wäre"!

 

Gruß Bernd

 

 

 

 

Edited by Bernd Matthießen
Link to comment
23 minutes ago, Bernd Matthießen said:

Um das "forken" und eigenen Docker bereitstellen geht es mir! Also hier dann ein Image, welches dann "ein calibre docker MIT inkludiertem apache Server wäre"!

Das forken - also die typischerweise bei Github hinterlegte "Docker-Bauanleitung" in ein eines Repository aufnehmen, den Docker anpassen, bauen und dann bei Docker-Hub "veröffentlichen". dann kann man den Docker dann im Template nutzen.

Das wäre der eigentlich "normale" Weg.

 

Es geht aber auch "lokal", je nach dem was man in den Docker nachladen will.

Man kann einen laufenden Container nehmen, ins CLI des Containers wechseln und die Installationsbefehle ausführen. Dann wäre der Container schonmal ausgerüstet. Die laufende Instanz ist aber nur im RAM, also muss man diesen ins Image zurückspeichern. Das Image ist dann lokal und man kann es wieder in seinem Docker-Hub Account hochladen (oder eben nur das lokale nutzen).

Das Ganze geht aber nur/macht nur Sinn, wenn im Docker auch schon alle Tools zur Installation der Zusatzkomponenten vorhanden/installiert sind.

Sonst müsste man auch das noch vorher machen.

  • Like 1
Link to comment

Hi,

 

genau so wollte ich es machen! Ich gehe sozusagen in die Konsole des laufenden Dockers, passe diesen an, wie in meinem Beispiel ein "apt-get install apache2". Dann läuft das ganze bereits so wie ich es möchte (ist nur ein Beispiel!) und dann, das ist ja genau die Frage, muss das ganze entweder in Image zurück gespeichert werden oder ein neues Image erstellt werden. Wie mache ich das?
Was ich bis jetzt herausgefunden habe, müsste ich auf der Konsole im Unraid ja anscheinend ein "docker image build -t 'Name_des_neuen_Images' " ausführen. Dann hätte ich das Image schon mal erstellt, oder? Wäre das korrekt? Muss ich nicht irgendwie den Bezug zum laufenden Image angeben?

Nun muss ich das auch noch in der Docker-Übersicht von Unraid reinbekommen. Wie muss ich hier vorgehen?

 

Gruß Bernd

Edited by Bernd Matthießen
Link to comment
7 minutes ago, Bernd Matthießen said:

genau so wollte ich es machen! Ich gehe sozusagen in die Konsole des laufenden Dockers,

Ja, aber genaugenoomen: der Docker / das Image "läuft" nicht, sondern was läuft ist der/ein Container von dem Image....praktisch wie eine Mini-VM, wobei das Dateisystem der Mini-VM komplett im RAM liegt, also vom Image entkoppelt ist.

 

7 minutes ago, Bernd Matthießen said:

passe diesen an, wie in meinem Beispiel ein "apt-get install apache2".

...wenn die apt Toolchain im Docker installiert und konfiguriert (/etc/apt/sources.list) ist, ja...muss aber selbst bei einem Debian/Ubuntu basierten Image nicht so sein.

Docker sind nur für "eine" App, anders als LXC (wie bei Proxmox, die sind wirklich wie eine Mini-VM).

 

7 minutes ago, Bernd Matthießen said:

Dann läuft das ganze bereits so wie ich es möchte (ist nur ein Beispiel!) und dann, das ist ja genau die Frage, muss das ganze entweder in Image zurück gespeichert werden oder ein neues Image erstellt werden.

....es wird aus dem Container ein neues Image erstellt.

 

7 minutes ago, Bernd Matthießen said:

Wie mache ich das?

...schau Dir die entsprechende Command-Referenz des Docker-CLI an.

Das macht man mit "docker container commit ...." -> https://docs.docker.com/engine/reference/commandline/container_commit/ (vom unraid CLI aus).

 

7 minutes ago, Bernd Matthießen said:

Was ich bis jetzt herausgefunden habe, müsste ich auf der Konsole im Unraid ja anscheinend ein "docker image build -t 'Name_des_neuen_Images' " ausführen.

 

...siehe oben.

 

7 minutes ago, Bernd Matthießen said:

Dann hätte ich das Image schon mal erstellt, oder? Wäre das korrekt?

Ja.

 

7 minutes ago, Bernd Matthießen said:

Muss ich nicht irgendwie den Bezug zum laufenden Image angeben?

Nope, nicht für das alte Image...Bezug ist der laufende Container, siehe oben.

 

7 minutes ago, Bernd Matthießen said:

Nun muss ich das auch noch in der Docker-Übersicht von Unraid reinbekommen.

...vergib Deinem eigenen, neuen und zunächst lokalen Image einen TAG.

 

Du kannst Dir aber auch einen Account bei Docker-Hub holen, dort Dein lokales Image hochladen und dann diese/Deine eigene URL (und Namen) verwenden.

Beachte, das es beim free-Account inzwischen wohl Beschränkungen gibt (meine ich zumindest), wie oft man zugreift bzw. welche Ressourcen man pro Tag verbrauchen kann.

Also vielleicht vorher lokal spielen bis das Image Docker fertig ist.

 

Du kannst Dir auch den Docker "Portainer" aus dem unraid "App-Store" installieren und einiges dort via GUI machen.

 

Du könntest, statt den public Docker-Hub zu nehmen, auch Dein eigenes Docker-Repo auf unRaid hosten (Docker-Hub gibt es als Docker...verrückt, nicht ;-))

 

7 minutes ago, Bernd Matthießen said:

Wie muss ich hier vorgehen?

 

Wenn ein Docker gestartet wird, schaut der Docker-Daemon zuerst, ob das Image lokal verfügbar ist.

Wenn nicht, nimmt der die URL, z.B. zum Docker-Hub.

Benutze den Image-Namen, inkl. TAG dann im Docker template von unraid, ggfls inkl. URL Deines Docker-Hub Accounts für Dein neues Image.

 

  • Like 1
Link to comment

@Bernd Matthießen ....als Ergänzung vielleicht noch der Tipp:

 

Unraid selbst ist eigentlich nicht dafür gemacht, Docker zu entwickeln und zu bauen...eher als Plattform diese zu Nutzen/zu starten.

Es fehlen auch einige neuere Tools, wie Docker Compose.

 

Ich würde, gerade um Docker und das Image bauen/verwalten mal kennenzulernen, in unRaid eine Linux VM (Debian/Ubuntu/fedora mit eingebautem/installierten Docker-Daemon) nehmen und da drin üben/entwicklen.

Die fertigen Images dann über ein Docker-Repo (public oder local Hub) schliesslich in unraid nutzen/laufen lassen.

 

Link to comment
On 5/4/2022 at 8:29 AM, Bernd Matthießen said:

in die Konsole des laufenden Dockers, passe diesen an, wie in meinem Beispiel ein "apt-get install apache2".

Das ist nicht so vorgesehen und wird in vielen Fällen auch nicht funktionieren. Container haben selten ein voll funktionsfähiges OS, sondern enthalten nur das was zwingend notwendig ist, um die Applikation zu nutzen.

 

Container, die mehrere Apps enthalten, widerspechen eigentlich auch dem Konzept von Containern.

  • Like 1
Link to comment

Nachdem ich mich etwas eingelesen habe, habe ich nun verstanden, wie man mit docker ein "original" Image herunterladen und als Basis nutzen kann.

Ich habe mich für das bullseye-slim Image entschieden. Hier baue ich dann darauf auf, um eigene Applikationen zu integrieren.

 

Mir geht es nicht darum, die Grundsätze von Docker in Frage zu stellen, sondern nur darum, etwas darüber zu lernen und eventuell auch eigene Container zu bauen und eventuell zur Verfügung zu stellen.

 

Sagen wir mal, meine Ausgangsfrage war der erste Schritt in die Richtung! Irgendwo muss man ja mal anfangen 🙂

 

Momentan bin ich noch am experimentieren... bitte sehts mir nach, wenn ich dann manchmal etwas unübliche Fragen stelle...

 

Link to comment
On 5/6/2022 at 2:58 AM, Bernd Matthießen said:

Ich habe mich für das bullseye-slim Image entschieden. Hier baue ich dann darauf auf, um eigene Applikationen zu integrieren.

 

Das oder auch alpine ist bei Dockern beliebt.

 

Hier ein simples Beispiel für einen SFTP Docker:

https://github.com/atmoz/sftp/blob/master/Dockerfile

 

Und hier die entrypoint:

https://github.com/atmoz/sftp/blob/master/files/entrypoint

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...