⇤ ← Revision 1 vom 2019-06-14 14:18:48
Größe: 3401
Kommentar: Workflow
|
Größe: 3482
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
#acl hayd@cbs.mpg.de:read,write,delete,revert,admin Known:read,write All:read |
Häufig genutzte Befehle
Diese Seite soll kurz beschreiben wie ein einfacher Workflow mit Singularity aussehen kann und gibt eine kurze Übersicht über oft genutzte Befehle.
Inhaltsverzeichnis
Bau des Containers (build)
Root-Rechte sind notwendig! Alternativ kann man über den Remote Buildservice von Sylabs.io ohne Root-Rechte bauen. Dazu hier mehr.
Bau eines einfachen read-only (default) Containers aus einem selbst geschriebenen Definition Files:
$ sudo singularity build CONTAINER.sif DEFINITIONFILE.def
Bau eines beschreibbaren bzw. veränderbaren Containers aus einem selbst geschriebenen Definition Files:
$ sudo singularity build -s CONTAINER.sif/ DEFINITIONFILE.def
- -s steht hier für Sandbox
- alternativ kann auch --sandbox verwendet werden
Bau eines Containers aus einer Containerquelle wie dem Docker Hub:
$ sudo singularity build CONTAINER.sif docker://ubuntu:latest
Bau aus eines beschreibbaren Containers aus einem read-only Container:
$ sudo singularity build -s CONTAINER.SIF/ CONTAINER.SIF
Befehl im Container ausführen (exec)
Anzeigen der Linux-Version des Containers:
$ singularity exec CONTAINER.SIF cat /etc/issue
Nachinstallieren eines Pakets in den Container:
$ sudo singularity exec --writable CONTAINER.SIF/ apt-get install -y vim
- Der Container wird verändert und muss mit Schreibberechtigung (--writable) gestartet werden.
- Root-Rechte sind zum Installieren von Paketen notwendig.
Erstellen einer Datei:
$ singularity exec --writable CONTAINER.SIF/ touch test
- Der Container wird verändert, da eine neue Datei an "/" erstellt wird und somit muss er mit Schreibrechten gestartet werden.
- Es sind keine Root-Rechte notwendig.
Container starten (run)
Container wird gestartet (%runscript-Section des Definition Files wird ausgeführt):
$ singularity run CONTAINER.SIF
Alternativ lässt sich ein Container so starten:
$ ./CONTAINER.SIF
Argumente können hier übergeben werden:
$ singularity run CONTAINER.SIF arg0 arg1 arg2
Wahlweise können weitere Verzeichnisse eingebunden werden:
$ singularity run --bind /opt, /data:/mnt CONTAINER:SIF
- Das Verzeichnis /opt des Hosts ist unter /opt im Container erreichbar.
- Das Verzeichnis /data des Hosts ist unter /mnt im Container erreichbar.
Container im Hintergrund als Service starten (instance)
Zeigt alle laufenden Singularity-Instanzen an:
$ singularity instance list
Starten einer Singularity-Instanz:
$ singularity instance start CONTAINER.SIF INSTANCENAME [arg0 arg1]
Stoppen einer Singularity-Instanz:
$ singularity instance stop INSTANCENAME
Stoppen aller Singularity-Instanzen:
$ singularity instance stop -a
Shell im Container starten (shell)
Starten einer Shell in einem Container:
$ singularity shell CONTAINER.SIF
Starten einer Shell in einer Singularity-Instanz:
$ singularity shell instance://INSTANCENAME
Containerbeschreibung anzeigen (run-help)
Containerbeschreibung eines lokalen Containers anzeigen:
$ singularity run-help CONTAINER.SIF