기본적으로 샌드박스는
python:3.11을 기본 이미지로 사용합니다. 다른 이미지를 사용하려면 Sandbox.run() 또는 SandboxDefaults에 container_image를 전달하세요. W&B는 공개 컨테이너 이미지만 지원합니다.다음 코드 스니펫은 python:3.15 이미지를 사용해 샌드박스를 만들고, 그 안에서 python --version을 실행합니다.샌드박스 생성
Sandbox.run()을 사용하여 샌드박스를 생성하고 시작하세요. 이 방법은 환경과 상호작용하는 데 사용할 수 있는 Sandbox 객체를 반환합니다.
다음 예제에서는 기본 컨테이너 이미지(python:3.11)를 사용해 샌드박스를 생성합니다:
메인 명령 없이 샌드박스 시작하기
Sandbox.run()을 호출하세요.
메인 명령으로 샌드박스 시작하기
Sandbox.run()에 명령을 전달할 수도 있습니다. 샌드박스가 처음부터 끝까지 단일 작업만 실행하도록 설계된 경우에는 이 패턴을 사용하세요. 메인 프로세스가 종료되면 샌드박스는 COMPLETED or FAILED와 같은 최종 상태로 전환됩니다.
Sandbox.run()에 전달한 명령은 샌드박스의 메인 프로세스로 실행됩니다.
Sandbox.run()은 명령의 상태를 모니터링하고 완료될 때까지 기다리는 데 사용할 수 있는 Sandbox 객체를 반환합니다. 예를 들어, 명령이 완료될 때까지 기다린 다음 결과를 가져오려면 다음과 같이 하세요:
세션을 사용해 여러 샌드박스 만들기
Session을 사용해 여러 샌드박스를 생성하고 관리하세요. 세션이 닫히면(예: with 블록을 종료할 때) 해당 세션에서 생성한 모든 샌드박스가 자동으로 중지됩니다.
선택적으로 SandboxDefaults 객체를 세션에 전달해, 해당 세션에서 생성하는 모든 샌드박스에 재사용 가능한 기본 설정을 정의할 수 있습니다. 예를 들어, 세션의 모든 샌드박스에 적용할 기본 컨테이너 이미지, 네트워크 설정 또는 최대 수명을 지정할 수 있습니다.
session.sandbox()는 아직 시작되지 않은 샌드박스를 반환합니다. Sandbox.exec(), Sandbox.read_file() 또는 다른 오퍼레이션을 호출하면 자동으로 시작됩니다.
다음 코드 스니펫은 기본 설정(SandboxDefaults)을 사용하는 두 개의 샌드박스를 생성하는 세션을 만듭니다.