Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
client:container [2021/11/25 15:38 CET] – [Anlegen des Container-Image] bißchen verfl. chrclient:container [2021/12/27 16:35 CET] (aktuell) – bißchen Kosmetik chr
Zeile 10: Zeile 10:
 ==== Auswahl des Imagetyps ==== ==== Auswahl des Imagetyps ====
  
-[{{ :bwsuite:container:211118_bwlp_suite_new_image.png?400|bwLehrpool-Suite: Auswahl zwischen VM und Container}}]Den Wizard zur Erstellung eines Docker-Abbildes erreichen Sie nach Auswahl per Schaltfläche „Neues Docker-Image“ (siehe Abb. rechts).+[{{ :bwsuite:container:211118_bwlp_suite_new_image.png?320|bwLehrpool-Suite: Auswahl zwischen VM und Container}}]Den Wizard zur Erstellung eines Docker-Abbildes erreichen Sie nach Auswahl der Schaltfläche „Neues Docker-Image“ (siehe Abb. rechts).
  
 <note important>Bitte beachten Sie eventuelle Warnungen unter „Hinweis“. Überprüfen Sie gegebenenfalls wie [[https://www.bwlehrpool.de/wiki/doku.php/client/bwlehrpool-suite#menueleiste|hier beschrieben]], ob eine neue Version der bwLehrpool-Suite zur Verfügung steht.</note> <note important>Bitte beachten Sie eventuelle Warnungen unter „Hinweis“. Überprüfen Sie gegebenenfalls wie [[https://www.bwlehrpool.de/wiki/doku.php/client/bwlehrpool-suite#menueleiste|hier beschrieben]], ob eine neue Version der bwLehrpool-Suite zur Verfügung steht.</note>
Zeile 18: Zeile 18:
 ==== Anlegen des Container-Images ==== ==== Anlegen des Container-Images ====
  
-[{{ :bwsuite:container:211118_bwlp_suite_new_image_container.png?400|bwLehrpool-Suite: Container-Image erstellen}}]+[{{ :bwsuite:container:211118_bwlp_suite_new_image_container.png?320|bwLehrpool-Suite: Container-Image erstellen}}]
 Zur Erstellung eines Container-Images stehen Ihnen zwei Möglichkeiten zur Auswahl. Sie können Ihr selbstgebautes Image als Docker-Archive exportieren und hochladen, oder auf bestehende Abbilder aus einem Image-Repositorium, beispielsweise [[https://hub.docker.com/|Docker Hub]]), zurückgreifen. Zur Erstellung eines Container-Images stehen Ihnen zwei Möglichkeiten zur Auswahl. Sie können Ihr selbstgebautes Image als Docker-Archive exportieren und hochladen, oder auf bestehende Abbilder aus einem Image-Repositorium, beispielsweise [[https://hub.docker.com/|Docker Hub]]), zurückgreifen.
  
Zeile 27: Zeile 27:
     * Git-Repository: Für komplexere Images können Sie auch entsprechend der [[https://docs.docker.com/engine/reference/commandline/build/|Docker-Build-Anleitung]] einen Link auf ein Git-Repository angeben. Hierdurch ist es beispielsweise möglich, dem endgültigen Image weitere Dateien wie Konfigurationen oder Skripte hinzuzufügen.     * Git-Repository: Für komplexere Images können Sie auch entsprechend der [[https://docs.docker.com/engine/reference/commandline/build/|Docker-Build-Anleitung]] einen Link auf ein Git-Repository angeben. Hierdurch ist es beispielsweise möglich, dem endgültigen Image weitere Dateien wie Konfigurationen oder Skripte hinzuzufügen.
 --></html>  --></html> 
 +
   - Docker-Archive ist die bevorzugte Methode, um in bwLehrpool Container-Images anzulegen. Exportieren Sie Ihr erstelltes Image mit [[https://docs.docker.com/engine/reference/commandline/save/|docker save]] und fügen Sie es dem Upload hinzu.   - Docker-Archive ist die bevorzugte Methode, um in bwLehrpool Container-Images anzulegen. Exportieren Sie Ihr erstelltes Image mit [[https://docs.docker.com/engine/reference/commandline/save/|docker save]] und fügen Sie es dem Upload hinzu.
   - Soll ein bestehendes Image von Docker Hub verwendet werden, geben Sie lediglich den Repository-Namen an (z.b. python:3.7, tensorflow/tensorflow:nightly-gpu-jupyter, etc.).   - Soll ein bestehendes Image von Docker Hub verwendet werden, geben Sie lediglich den Repository-Namen an (z.b. python:3.7, tensorflow/tensorflow:nightly-gpu-jupyter, etc.).
   - Geben Sie Ihrem Container-Image einen sprechenden Namen.   - Geben Sie Ihrem Container-Image einen sprechenden Namen.
  
-<note important>Die Dateiendung für Archive muss für die bwLehrpool-Suite **.tar** lauten.</note> 
-<note important>Beachten Sie beim Exportieren von Docker-Images, dass für das Docker-Archive Dateiberechtigungen stimmen.</note> 
  
 <note tip>Docker-Archive profitieren aktuell von [[satellite:dnbd3_lokales_caching|lokalem Caching]].</note> <note tip>Docker-Archive profitieren aktuell von [[satellite:dnbd3_lokales_caching|lokalem Caching]].</note>
 +
 +<note important>Die Dateiendung für Docker-Archive muss für die bwLehrpool-Suite **.tar** lauten, ansonsten werden die Dateien in der Auswahl nicht angezeigt.\\ \\ Prüfen Sie nach dem Exportieren eines Containers-Images ("//docker save ...//"), ob das erstellte Docker-Archive passende Dateiberechtigungen besitzt. Eventuell besitzt die Datei Root-Rechte und kann daher nicht in der Suite ausgewählt werden.</note>
  
  
 ==== Metadaten, Container-Typ ==== ==== Metadaten, Container-Typ ====
  
-[{{ :bwsuite:container:bwlp_suite_new_image_container_meta.png?direct&400|}}] Geben Sie im letzten Schritt dem Container-Image eine Beschreibung und legen den Typ des Container-Image fest.+[{{ :bwsuite:container:bwlp_suite_new_image_container_meta.png?direct&320|}}] Geben Sie im letzten Schritt dem Container-Image eine Beschreibung und legen den Typ des Container-Image fest.
  
 === Beschreibung === === Beschreibung ===
Zeile 45: Zeile 46:
 Vergeben Sie dem Image eine aussagekräftige Beschreibung mit Informationen wie: Vergeben Sie dem Image eine aussagekräftige Beschreibung mit Informationen wie:
   * Welches Quell-Image benutzt wird, von wo es stammt,   * Welches Quell-Image benutzt wird, von wo es stammt,
-  * Welche Anwendung in welcher Version in dem Container enthalten sind, …+  * welche Anwendung in welcher Version in dem Container enthalten sind, …
  
 === Container-Image-Typ === === Container-Image-Typ ===
Zeile 53: Zeile 54:
   * Pool (Default): Ein einfaches Container-Image, das rein zur Verwendung auf bwLehrpool-Clients erstellt wurde.   * Pool (Default): Ein einfaches Container-Image, das rein zur Verwendung auf bwLehrpool-Clients erstellt wurde.
   * Daten: Ein spezielles Container-Image, das nur Daten enthält. Beispielsweise können so Daten-Container mit Trainingsdaten für Machine-Learning (Mnist, ImageNet, CIFAR, ...) separat bereitgestellt werden.    * Daten: Ein spezielles Container-Image, das nur Daten enthält. Beispielsweise können so Daten-Container mit Trainingsdaten für Machine-Learning (Mnist, ImageNet, CIFAR, ...) separat bereitgestellt werden. 
-  <note important>Daten für einen Daten-Container müssen derzeit unter **/data/** abgelegt sein! Verwenden Sie zur Erstellung von Daten-Container kleine Basis-Images wie [[https://hub.docker.com/_/alpine|Alpine]] oder [[https://hub.docker.com/_/busybox|BusyBox]]</note>+  <note important>Daten für einen Daten-Container müssen derzeit unter **/data/** abgelegt werden! Verwenden Sie zur Erstellung von Daten-Containern kleine Basis-Images wie [[https://hub.docker.com/_/alpine|Alpine]] oder [[https://hub.docker.com/_/busybox|BusyBox]]</note>
  
 <html><!-- Batch-System bezieht seine Container von eigener Container-Registry <html><!-- Batch-System bezieht seine Container von eigener Container-Registry
Zeile 60: Zeile 61:
  
 Nach Angabe der Beschreibung und des gewünschten Imagetyps können Sie wie gewohnt mittels „Weiter“ die Zugriffsberechtigungen Ihres Containers festlegen oder direkt per „Fertigstellen“ die Konfiguration abschließen. Nach Angabe der Beschreibung und des gewünschten Imagetyps können Sie wie gewohnt mittels „Weiter“ die Zugriffsberechtigungen Ihres Containers festlegen oder direkt per „Fertigstellen“ die Konfiguration abschließen.
 +
 ===== Veranstaltungen mit Docker-Container ===== ===== Veranstaltungen mit Docker-Container =====
  
Zeile 66: Zeile 68:
 ==== Konfiguration des Containers ==== ==== Konfiguration des Containers ====
  
-[{{ :bwsuite:container:bwlp_suite_lecture_container_details.png?direct&400|Veranstaltungsdetails Containerkonfiguration}}]+[{{ :bwsuite:container:bwlp_suite_lecture_container_details.png?direct&320|Veranstaltungsdetails Containerkonfiguration}}]
  
 Nachdem eine auf ein Container-Image verlinkende Veranstaltung angelegt wurde, muss das Startverhalten des Containers festgelegt werden. Hierzu befindet sich in der Detailansicht der neu erstellten Veranstaltung im Untermenü „Container“ eine Eingabemaske. Dort kann das Verhalten des Containers durch die Menüpunkte „Container-Startoptionen“, „Container-Startbefehl“ sowie eine Mount-Konfiguration angepasst werden.  Nachdem eine auf ein Container-Image verlinkende Veranstaltung angelegt wurde, muss das Startverhalten des Containers festgelegt werden. Hierzu befindet sich in der Detailansicht der neu erstellten Veranstaltung im Untermenü „Container“ eine Eingabemaske. Dort kann das Verhalten des Containers durch die Menüpunkte „Container-Startoptionen“, „Container-Startbefehl“ sowie eine Mount-Konfiguration angepasst werden. 
Zeile 74: Zeile 76:
   * **Container-Startbefehl**: Bei der Erstellung eines Containers wird durch die im Dockerfile enthaltenen Angaben ENTRYPOINT bzw. CMD festgelegt, welche und wie die Containeranwendung gestartet wird. Durch Überschreiben dieser Angaben können Sie das Verhalten der genutzten Anwendung Ihren Wünschen entsprechend anpassen (siehe [[https://docs.docker.com/engine/reference/builder/|Dockerreferenz]]).   * **Container-Startbefehl**: Bei der Erstellung eines Containers wird durch die im Dockerfile enthaltenen Angaben ENTRYPOINT bzw. CMD festgelegt, welche und wie die Containeranwendung gestartet wird. Durch Überschreiben dieser Angaben können Sie das Verhalten der genutzten Anwendung Ihren Wünschen entsprechend anpassen (siehe [[https://docs.docker.com/engine/reference/builder/|Dockerreferenz]]).
  
-  * **Bind Mount-Konfiguration**: Durch Anlegen von Bind Mounts wird festgelegt, welche Verzeichnisse aus dem Host-System und/oder interne Docker-Speicherbereiche (Volumes) im Container unter einem festgelegten Dateipfad eingehängt werden. Dabei sind zwingend erforderliche eine Quelle (Source) und ein Ziel (Target), optional können zusätzliche Optionen das Verhalten im Container beeinflussen (z.b.  READ_ONLY). Weitere Informationen zu Bind Mounts finden Sie in der [[https://docs.docker.com/storage/bind-mounts/|Docker-Dokumentation]]. Derzeit können Sie nur vordefiniert Labels als Quelle auswählen, diese sind wie folgt definiert:  +  * **Bind Mount-Konfiguration**: Durch Anlegen von Bind Mounts wird festgelegt, welche Verzeichnisse aus dem Host-System und/oder interne Docker-Speicherbereiche (Volumes) im Container unter einem festgelegten Dateipfad eingehängt werden. Dabei sind eine Quelle (Source) und ein Ziel (Target) zwingend erforderlich, optional können zusätzliche Optionen das Verhalten im Container beeinflussen (z.b.  READ_ONLY). Weitere Informationen zu Bind Mounts finden Sie in der [[https://docs.docker.com/storage/bind-mounts/|Docker-Dokumentation]]. Derzeit können Sie nur vordefinierte Labels als Quelle auswählen, diese sind wie folgt definiert:  
-    * //USER_HOME// stellt das Home Verzeichnis des angemeldeten Users dar+    * //USER_HOME// stellt das Home Verzeichnis des angemeldeten Users dar.
     * //USER_TMP// stellt dem User ein temporäres Verzeichnis zum Austausch unter ///tmp/docker/<USERNAME>/// bereit.     * //USER_TMP// stellt dem User ein temporäres Verzeichnis zum Austausch unter ///tmp/docker/<USERNAME>/// bereit.
     * //Buchstaben// referenzieren den Laufwerksbuchstaben eines Netzlaufwerks, das in den Veranstaltungsdetails festgelegt werden kann.     * //Buchstaben// referenzieren den Laufwerksbuchstaben eines Netzlaufwerks, das in den Veranstaltungsdetails festgelegt werden kann.
Zeile 91: Zeile 93:
 ==== Container-Veranstaltungen auf bwLehrpool-Client ==== ==== Container-Veranstaltungen auf bwLehrpool-Client ====
  
-[{{ :bwsuite:container:bwlp_client_example_lecture.png?direct&400|Start der Containeranwendung auf einem bwLehrpool-Client}}]+[{{ :bwsuite:container:bwlp_client_example_lecture.png?direct&320|Start der Containeranwendung auf einem bwLehrpool-Client}}]
  
 Nach dem Start einer Container-Veranstaltung wird der Desktop des nativen Linux gestartet und der Container mit den Veranstaltungsdetails initialisiert. Im aktuellen Entwicklungsstand öffnet sich nach Start der Desktopoberfläche ein Terminal, in dem der aktuelle Fortschritt der Initialisierung angezeigt wird.  Nach dem Start einer Container-Veranstaltung wird der Desktop des nativen Linux gestartet und der Container mit den Veranstaltungsdetails initialisiert. Im aktuellen Entwicklungsstand öffnet sich nach Start der Desktopoberfläche ein Terminal, in dem der aktuelle Fortschritt der Initialisierung angezeigt wird. 
Drucken/exportieren