By default, sandboxes use
python:3.11 as the base image. To use a different image, pass container_image to Sandbox.run() or SandboxDefaults. W&B supports public container images only.Create a single sandbox
UseSandbox.run() to create and start a sandbox. This method returns a Sandbox object that you can use to interact with the environment.
The following example creates a sandbox with the default container image (python:3.11):
Start a sandbox without a main command
CallSandbox.run() without a command when you want to create a sandbox first and run work inside it later.
Start a sandbox with a main command
You can also pass a command toSandbox.run(). Use this pattern when the sandbox is meant to run a single job from start to finish. When the main process exits, the sandbox enters a terminal state such as COMPLETED or FAILED.
The command you provide to Sandbox.run() starts as the sandbox’s main process.
Sandbox.run() returns a Sandbox object that you can use to monitor the command and wait for it to finish. For example, to wait for the command to complete and retrieve its result:
Create multiple sandboxes with a session
UseSession to create and manage multiple sandboxes. When the session closes (for example, when exiting a with block), all sandboxes created by that session are stopped automatically.
You can optionally pass a SandboxDefaults object to a session to define reusable default configuration for all sandboxes created by that session. For example, you can specify a default container image, network configuration, or maximum lifetime for all sandboxes in the session.
The following code snippet creates a session that creates two sandboxes that use a default configuration (SandboxDefaults):