Singularity を使ってみよう
コンテナ技術は、HPC(高性能計算)や科学技術分野でも広く利用されています。Singularity(最近ではApptainerとして知られています)は、セキュリティやパフォーマンスの観点から研究機関などでも多く使用されています。
このノートでは、Singularityイメージファイルの基本的な扱い方について、簡単にまとめています。
Singularityのインストール
Singularityを使うためには、システムにインストールする必要があります。ほとんどのLinux環境で簡単にインストールできます。公式サイトのインストールガイドに従って、適切に設定しましょう。
- 公式インストールガイド: Singularity Installation Guide
イメージファイルを実行する
Singularityのイメージファイルは通常、.sif
という拡張子を持っています。イメージを使ってコンテナを実行するには、singularity run
コマンドを使用します。このコマンドは、イメージファイル内に設定されたエントリーポイント(デフォルトのプログラム)を起動します。
singularity run my_image.sif
たとえば、イメージにPythonプログラムが含まれている場合、上記のコマンドでPythonプログラムが実行されます。
コンテナ内にシェルを開く
コンテナの環境にインタラクティブにアクセスしたい場合は、singularity shell
コマンドを使って、コンテナ内にシェルを開きます。これで、コンテナ内のシステムに対してコマンド操作が可能です。
singularity shell my_image.sif
これにより、ホストシステムのターミナルがコンテナ内部のシェルに切り替わり、そこで操作ができるようになります。
コンテナ内でコマンドを実行する
特定のコマンドをコンテナ内で実行したい場合は、singularity exec
を使います。このコマンドを使用すると、イメージ内のプログラムやスクリプトを直接実行できます。
たとえば、Pythonのバージョンを確認するには、次のようにします:
singularity exec my_image.sif python --version
これで、イメージ内のPythonのバージョンが表示されます。ほかのコマンドも同様に実行可能です。
データをコンテナにマウントする
ホストシステムのディレクトリをコンテナ内にマウントしてデータをやり取りしたい場合は、-B
オプションを使用します。このオプションで、ホスト上のディレクトリをコンテナにバインドできます。
singularity exec -B /path/to/host/dir:/path/in/container my_image.sif some_command
ここでは、ホストシステムの/path/to/host/dir
をコンテナ内の/path/in/container
にマウントして、コンテナ内からもそのディレクトリにアクセスできるようにしています。