Work
Travel
Various
Docker と Apptainer
Docker を使って Docker イメージを実行するには:
docker run -it --rm <image> command
各項目の意味は次のとおりです:
-it: コンテナをシェルのように対話的に操作できるようにします--rm: コンテナ終了時にコンテナを自動的に削除します。command: コンテナ内で実行するコマンドで、通常はbashです
永続的な保存のためにローカルディレクトリをコンテナにマウントするには、-v バインディングを使用します。
たとえば次のようにすると、ローカルの ~/mywork がコンテナ内で /usr/local/mywork として利用できるようになります:
docker run -it --rm -v ~/mywork:/usr/local/mywork <image> command
便利なコマンド
Dockerfile のキーワード CMD は、Docker の run コマンドが指定されていない場合に実行される
スクリプトを指定できます。
キーワード ENTRYPOINT は、command フラグが含まれているかどうかに関係なく、コンテナ内で常に実行される
スクリプトを定義します。
エントリポイントは、実行時に次のオプションで上書きできます(ここでは sh を例として使用):
--entrypoint /bin/sh
イメージを調べるには:
docker image inspect <image>
Apptainer
Linux ホストには apptainer(旧称 Singularity)があり、Docker と同様に実行できます。
イメージの保存にはキャッシュディレクトリを使用するため、そのキャッシュは
ディスク容量に余裕のある場所に設定することをお勧めします。以下の例では /path/to/user/cache を使用しています:
export sif_cache=/path/to/$USER/sif
続いて:
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