ボリューム
ボリュームは、サンドボックス間でファイルを共有してアクセスできる、FUSE ベースのマウントです。これにより、サンドボックスは大容量ファイルを即座に読み取れ、各サンドボックスへ手動でアップロードする必要がありません。ボリュームのデータは S3 互換のオブジェクトストレージに保存されます。
- 複数のボリュームを 1 つのサンドボックスにマウント可能
- 1 つのボリュームを複数のサンドボックスにマウント可能
ボリュームの作成
サンドボックスにボリュームをマウントする前に、先に作成しておく必要があります。
volume = daytona.volume.get("my-volume", create=True)
const volume = await daytona.volume.get('my-volume', true)
ボリュームのマウント
ボリュームを作成したら、CreateSandboxFromSnapshotParams
オブジェクトで指定してサンドボックスにマウントできます:
import osfrom daytona import CreateSandboxFromSnapshotParams, Daytona, VolumeMount
daytona = Daytona()
# 新しいボリュームを作成するか、既存のボリュームを取得するvolume = daytona.volume.get("my-volume", create=True)
# ボリュームをサンドボックスにマウントするmount_dir_1 = "/home/daytona/volume"
params = CreateSandboxFromSnapshotParams( language="python", volumes=[VolumeMount(volumeId=volume.id, mountPath=mount_dir_1)],)sandbox = daytona.create(params)
# サンドボックスの利用が終わったら、削除できます# サンドボックスを削除しても、ボリュームは保持されますsandbox.delete()
import { Daytona } from '@daytonaio/sdk'import path from 'path'
async function main() { const daytona = new Daytona()
// 新しいボリュームを作成するか、既存のボリュームを取得する const volume = await daytona.volume.get('my-volume', true)
// ボリュームをサンドボックスにマウントする const mountDir1 = '/home/daytona/volume'
const sandbox1 = await daytona.create({ language: 'typescript', volumes: [{ volumeId: volume.id, mountPath: mountDir1 }], })
// サンドボックスの利用が終わったら、削除できます // サンドボックスを削除しても、ボリュームは保持されます await sandbox1.delete()}
main()
ボリュームの削除
ボリュームが不要になった場合は削除できます。
volume = daytona.volume.get("my-volume", create=True)daytona.volume.delete(volume)
const volume = await daytona.volume.get('my-volume', true)await daytona.volume.delete(volume)
ボリュームの操作
マウントされると、サンドボックスのファイルシステム内の他のディレクトリと同様に、そのボリュームへの読み書きが行えます。ボリュームに書き込まれたファイルは、個々のサンドボックスのライフサイクルを超えて保持されます。
制限事項
ボリュームはFUSEベースのマウントであるため、ブロックストレージへのアクセスを必要とするアプリケーション(データベースのテーブルなど)では使用できません。 ボリュームは、ローカルのサンドボックスのファイルシステムと比べて、読み取り・書き込みの両方の操作が一般的に遅くなります。