Docker VM runtime
기준일: 2026-07-26
공식 기준: Docker VM runtime
Docker VM runtime 문서는 OpenClaw 공식 문서(install/docker-vm-runtime)를 한국어로 정리한 가이드입니다. Shared Docker VM runtime steps for long-lived OpenClaw Gateway hosts 명령·설정 키·코드 예시는 공식 문서를 그대로 보존하며, 해석과 절차 안내는 한국어로 제공합니다. 최종 동작은 설치된 CLI 버전과 공식 원문을 확인하세요.
핵심 요약
Shared Docker VM runtime steps for long-lived OpenClaw Gateway hosts
한국어 가이드 범위: install/docker-vm-runtime 경로의 설정·명령·제약·예시를 학습용으로 재구성합니다.
문서 구성
공식 문서의 주요 섹션은 다음과 같습니다.
- Bake required binaries into the image
- Example binary 1: Gmail CLI (gogcli — installs as gog)
- Copy the current Linux asset URL from https://github.com/steipete/gogcli/releases
- Example binary 2: Google Places CLI
- Copy the current Linux asset URL from https://github.com/steipete/goplaces/releases
- Example binary 3: WhatsApp CLI
- Copy the current Linux asset URL from https://github.com/steipete/wacli/releases
- Add more binaries below using the same pattern
- Build and launch
- What persists where
- Updates
- 관련 문서
상세 내용
본문
Shared runtime steps for VM-based Docker installs such as GCP, Hetzner, and similar VPS providers.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Bake required binaries into the image
Installing binaries inside a running container is a trap: anything installed at runtime is lost on restart. Bake every external binary a skill needs into the image at build time.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
주요 항목:
gog(fromgogcli) for Gmail accessgoplacesfor Google Placeswaclifor WhatsApp
Example binary 1: Gmail CLI (gogcli — installs as gog)
이 섹션의 세부 항목은 공식 문서 Example binary 1: Gmail CLI (gogcli — installs as gog)를 참고하세요.
Copy the current Linux asset URL from https://github.com/steipete/gogcli/releases
RUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Example binary 2: Google Places CLI
이 섹션의 세부 항목은 공식 문서 Example binary 2: Google Places CLI를 참고하세요.
Copy the current Linux asset URL from https://github.com/steipete/goplaces/releases
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Example binary 3: WhatsApp CLI
이 섹션의 세부 항목은 공식 문서 Example binary 3: WhatsApp CLI를 참고하세요.
Copy the current Linux asset URL from https://github.com/steipete/wacli/releases
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Add more binaries below using the same pattern
WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./ COPY ui/package.json ./ui/package.json COPY scripts ./scripts
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
Build and launch
If the build fails with Killed or exit code 137 during pnpm install --frozen-lockfile, the VM is out of memory. Use a larger machine class before retrying.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
docker compose build
docker compose up -d openclaw-gateway
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
docker compose logs -f openclaw-gateway
curl -fsS http://127.0.0.1:18789/healthz
What persists where
OpenClaw runs in Docker, but Docker is not the source of truth. All long-lived state must survive restarts, rebuilds, and reboots.
위 내용은 공식 문서의 해당 섹션 요지입니다. 세부 플래그·기본값은 원문과
--help를 확인하세요.
| Component | Location | Persistence mechanism | Notes |
|---|---|---|---|
| Gateway config | /home/node/.openclaw/ |
Host volume mount | Includes openclaw.json |
| Channel/provider creds | /home/node/.openclaw/credentials/ |
Host volume mount | Channel and provider credential material |
| Model auth profiles | /home/node/.openclaw/agents/ |
Host volume mount | agents/<agentId>/agent/auth-profiles.json (OAuth, API keys) |
| Legacy OAuth key file | /home/node/.config/openclaw/ |
Host volume mount | Read-only compat for pre-migration OAuth sidecars; openclaw doctor --fix migrates these into auth-profiles.json |
| Skill configs | /home/node/.openclaw/skills/ |
Host volume mount | Skill-level state |
| Agent workspace | /home/node/.openclaw/workspace/ |
Host volume mount | Code and agent artifacts |
| WhatsApp session | /home/node/.openclaw/ |
Host volume mount | Preserves QR login |
| Gmail keyring | /home/node/.openclaw/ |
Host volume + password | Requires GOG_KEYRING_PASSWORD |
| Plugin packages | /home/node/.openclaw/npm, /home/node/.openclaw/git |
Host volume mount | Downloadable plugin package roots |
| External binaries | /usr/local/bin/ |
Docker image | Must be baked at build time |
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
| OS packages | Container filesystem | Docker image | Do not install at runtime |
| Docker container | Ephemeral | Restartable | Safe to destroy |
Updates
git pull
docker compose build
docker compose up -d
관련 문서
주요 항목:
- Docker
- Podman
- ClawDock
실습 체크리스트
- 공식 문서와 로컬 버전을 대조합니다:
https://docs.openclaw.ai/install/docker-vm-runtime - 관련 CLI는
openclaw --help및 하위 명령--help로 옵션을 확인합니다. - 설정 변경 시
openclaw config/openclaw doctor로 유효성을 검사합니다. - Gateway·채널·플러그인 변경 후에는 필요 시 Gateway를 재시작합니다.
자주 쓰는 명령·설정 예시
FROM node:24-bookworm
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
# Example binary 1: Gmail CLI (gogcli — installs as `gog`)
# Copy the current Linux asset URL from https://github.com/steipete/gogcli/releases
RUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \
| tar -xzO gog > /usr/local/bin/gog; \
chmod +x /usr/local/bin/gog
# Example binary 2: Google Places CLI
# Copy the current Linux asset URL from https://github.com/steipete/goplaces/releases
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \
| tar -xzO goplaces > /usr/local/bin/goplaces; \
chmod +x /usr/local/bin/goplaces
# Example binary 3: WhatsApp CLI
# Copy the current Linux asset URL from https://github.com/steipete/wacli/releases
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \
| tar -xzO wacli > /usr/local/bin/wacli; \
chmod +x /usr/local/bin/wacli
# Add more binaries below using the same pattern
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
COPY ui/package.json ./ui/package.json
COPY scripts ./scripts
RUN corepack enable
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
RUN pnpm ui:install
RUN pnpm ui:build
ENV NODE_ENV=production
CMD ["node","dist/index.js"]
docker compose build
docker compose up -d openclaw-gateway
docker compose exec openclaw-gateway which gog
docker compose exec openclaw-gateway which goplaces
docker compose exec openclaw-gateway which wacli
/usr/local/bin/gog
/usr/local/bin/goplaces
/usr/local/bin/wacli
docker compose logs -f openclaw-gateway
curl -fsS http://127.0.0.1:18789/healthz
git pull
docker compose build
docker compose up -d
관련 링크
이 가이드는 공식 문서를 한국어 학습용으로 재구성한 것입니다. 옵션 기본값·플래그 이름은 설치 버전에 따라 달라질 수 있습니다.