Docker e Apptainer



Per eseguire un’immagine Docker tramite Docker:

docker run -it --rm <image> command

dove:

Per montare una directory locale nel container e archiviare i dati in modo permanente, si può usare il binding -v. Ad esempio, questo renderà la directory locale ~/mywork disponibile nel container come /usr/local/mywork:

docker run -it --rm  -v ~/mywork:/usr/local/mywork <image> command


Comandi utili

La parola chiave CMD del Dockerfile può indicare uno script che verrà eseguito se il comando Docker run non viene incluso.

La parola chiave ENTRYPOINT definisce uno script che verrà sempre eseguito nel container, indipendentemente dal fatto che il flag command sia incluso o meno.

L’entrypoint può essere sovrascritto a runtime con l’opzione seguente (usando sh come esempio):

--entrypoint /bin/sh


Per ispezionare un’immagine:

docker image inspect <image> 



Apptainer

Gli host Linux dispongono di apptainer (in precedenza Singularity), che può essere eseguito come Docker. Utilizza una directory di cache per memorizzare le immagini, quindi consiglio di collocare tale cache in una posizione con molto spazio su disco. Nell’esempio seguente viene usato /path/to/user/cache:

export sif_cache=/path/to/$USER/sif

e poi:

export APPTAINER_CACHEDIR=$sif_cache/apptainer-cache 
export APPTAINER_TMPDIR=$sif_cache/apptainer-tmp 
export TMPDIR=$sif_cache/apptainer-tmp 

apptainer exec --cleanenv --bind ~/mywork:/usr/local/mywork \
  <image> command