샌드박스 멈추고 재시작하기
샌드박스 멈추고 재시작하기 (Stop and restart a sandbox)
디스크는 유지하면서 샌드박스 실행만 멈추는 방법을 알아볼게요.
출처: 문서
본문
디스크는 유지하고 실행만 멈추고 싶을 때 샌드박스를 멈춰요. 나중에 같은 샌드박스를 다시 시작하면 그 파일들로 계속 작업할 수 있어요.
생성으로 얻었거나 리소스 이름을 읽어 얻은 샌드박스 핸들을 사용해요. 멈추는 것(stop)은 샌드박스를 제거하는 삭제(delete)와 달라요.
샌드박스 멈추기 (Stop the sandbox)
stop을 호출하고 stopped 상태가 될 때까지 기다려요. 예시는 업데이트된 리소스 버전을 가진 핸들을 반환해요.
대기 완료는 상태 변경을 확정해요. 타임아웃은 여러분의 클라이언트가 기다리기를 멈췄다는 뜻이니, 샌드박스를 읽어 작업이 완료됐는지 확인하세요.
TypeScript
const changed = await sandbox.stop({ idempotencyKey: requestId });
return changed.waitUntilStopped();
전체 TypeScript 예시: lifecycle/stop.ts
import type { Sandbox } from '@docker/sandboxes';
export async function stopSandbox(sandbox: Sandbox, requestId: string) {
const changed = await sandbox.stop({ idempotencyKey: requestId });
return changed.waitUntilStopped();
}
다시 시작하기 (Start it again)
stop 이전 버전의 핸들은 재사용하지 마세요.
멈춘 샌드박스를 시작하고 실행될 때까지 기다려요. 멈출 때와 마찬가지로 호출은 핸들을 반환해요.
멈추기 전의 프로세스 연결이 여전히 사용 가능하다고 가정하지 마세요. 애플리케이션에 맞게 기존 프로세스를 찾거나 작업을 다시 시작하세요.
멈춘 샌드박스도 여전히 존재해요. 디스크가 더 필요 없으면 삭제하고, 별개의 스냅샷이나 볼륨은 그 데이터가 더 필요 없을 때만 정리하세요.
TypeScript
const changed = await sandbox.start({ idempotencyKey: requestId });
return changed.waitUntilRunning();
전체 TypeScript 예시: lifecycle/start.ts
import type { Sandbox } from '@docker/sandboxes';
export async function startSandbox(sandbox: Sandbox, requestId: string) {
const changed = await sandbox.start({ idempotencyKey: requestId });
return changed.waitUntilRunning();
}
더 알아보기 (Learn more)
전체 레시피 목록은 Browse all recipes 에서 확인할 수 있어요.