طرق تثبيت أخرى
Docker
Docker هو اختياري. استخدمه فقط إذا كنت تريد بوابة معتمدة على الحاويات أو للتحقق من سير عمل Docker.
هل Docker مناسب لي؟
- نعم: إذا كنت تريد بيئة بوابة معزولة وقابلة للتجاهل أو لتشغيل OpenClaw على مضيف بدون تثبيتات محلية.
- لا: إذا كنت تشغل على جهازك الخاص وتريد فقط أسرع حلقة تطوير. استخدم طريقة التثبيت العادية بدلاً من ذلك.
- ملاحظة حول التجزئة (Sandboxing): تجزئة الوكيل تستخدم Docker أيضًا، لكنها لا تتطلب تشغيل البوابة بالكامل داخل Docker. راجع التجزئة (Sandboxing).
يغطي هذا الدليل:
- البوابة المعتمدة على الحاويات (OpenClaw كامل داخل Docker)
- تجزئة الوكيل لكل جلسة (بوابة المضيف + أدوات الوكيل المعزولة بـ Docker)
تفاصيل التجزئة: التجزئة (Sandboxing)
المتطلبات
- Docker Desktop (أو Docker Engine) + Docker Compose الإصدار v2
- ذاكرة وصول عشوائي (RAM) بسعة 2 جيجابايت على الأقل لبناء الصورة (قد يتم إيقاف
pnpm installبسبب نفاد الذاكرة على مضيفين بسعة 1 جيجابايت مع خروج برقم 137) - مساحة قرص كافية للصور + السجلات
- إذا كنت تشغل على مضيف VPS/عام، راجع تعزيز الأمان للتعرض للشبكة، خاصة سياسة جدار الحماية
DOCKER-USERلـ Docker.
البوابة المعتمدة على الحاويات (Docker Compose)
البدء السريع (موصى به)
ℹ️ إعدادات Docker الافتراضية هنا تفترض أوضاع الربط (
lan/loopback)، وليس أسماء مستعارة للمضيف (host aliases). استخدم قيم وضع الربط فيgateway.bind(على سبيل المثالlanأوloopback)، وليس أسماء مستعارة للمضيف مثل0.0.0.0أوlocalhost.
من جذر المستودع:
./docker-setup.sh
هذا البرنامج النصي:
- يبني صورة البوابة محليًا (أو يسحب صورة بعيدة إذا تم تعيين
OPENCLAW_IMAGE) - يشغل معالج الإعداد الأولي (onboarding wizard)
- يطبع تلميحات إعداد مزود اختيارية
- يبدأ البوابة عبر Docker Compose
- ينشئ رمز بوابة (token) ويكتبه في
.env
متغيرات البيئة الاختيارية:
OPENCLAW_IMAGE— استخدام صورة بعيدة بدلاً من البناء محليًا (مثلghcr.io/openclaw/openclaw:latest)OPENCLAW_DOCKER_APT_PACKAGES— تثبيت حزم apt إضافية أثناء البناءOPENCLAW_EXTENSIONS— تثبيت تبعيات الإضافات مسبقًا في وقت البناء (أسماء إضافات مفصولة بمسافات، مثلdiagnostics-otel matrix)OPENCLAW_EXTRA_MOUNTS— إضافة نقاط ربط (bind mounts) إضافية من المضيفOPENCLAW_HOME_VOLUME— الإبقاء على/home/nodeفي وحدة تخزين مسماة (named volume)OPENCLAW_SANDBOX— الاشتراك في تجهيز تجزئة بوابة Docker. فقط القيم الصحيحة الصريحة تمكنها:1,true,yes,onOPENCLAW_INSTALL_DOCKER_CLI— تمرير وسيطة البناء (build arg) لبناء الصور المحلية (1يثبت Docker CLI في الصورة).docker-setup.shيضبط هذا تلقائيًا عندما يكونOPENCLAW_SANDBOX=1للبناء المحلي.OPENCLAW_DOCKER_SOCKET— تجاوز مسار مقبس Docker (الافتراضي: المسارDOCKER_HOST=unix://...، وإلا/var/run/docker.sock)OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1— كسر الحماية: السماح بأهدافws://خاصة وموثوقة على الشبكة الخاصة لمسارات عميل CLI/الإعداد الأولي (الافتراضي هو loopback فقط)OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0— تعطيل علامات تعزيز أمان متصفح الحاوية--disable-3d-apis,--disable-software-rasterizer,--disable-gpuعندما تحتاج إلى توافق WebGL/3D.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0— إبقاء الإضافات ممكّنة عندما تتطلب سير عمل المتصفح ذلك (الافتراضي يعطل الإضافات في متصفح التجربة (sandbox)).OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=— تعيين حد عمليات عرض Chromium؛ عيّنه على0لتخطي العلامة واستخدام السلوك الافتراضي لـ Chromium.
بعد انتهائه:
- افتح
http://127.0.0.1:18789/في متصفحك. - الصق الرمز (token) في واجهة التحكم (الإعداد ات → الرمز).
- هل تحتاج إلى الرابط مرة أخرى؟ شغل
docker compose run --rm openclaw-cli dashboard --no-open.
تمكين تجزئة الوكيل (sandbox) للبوابة المعتمدة على Docker (اختياري)
يمكن لـ docker-setup.sh أيضًا تجهيز agents.defaults.sandbox.* لنشرات Docker. مكّن باستخدام:
export OPENCLAW_SANDBOX=1
./docker-setup.sh
مسار مقبس مخصص (على سبيل المثال Docker بدون صلاحيات الجذر (rootless)):
export OPENCLAW_SANDBOX=1
export OPENCLAW_DOCKER_SOCKET=/run/user/1000/docker.sock
./docker-setup.sh
ملاحظات:
- البرنامج النصي يربط
docker.sockفقط بعد اجتياز متطلبات التجربة (sandbox). - إذا تعذر إكمال إعداد التجربة (sandbox)، يعيد البرنامج النصي تعيين
agents.defaults.sandbox.modeإلىoffلتجنب تكوين تجربة (sandbox) قديم/معطل عند إعادة التشغيل. - إذا كان
Dockerfile.sandboxمفقودًا، يطبع البرنامج النصي تحذيرًا ويكمل؛ ابنِopenclaw-sandbox:bookworm-slimباستخدامscripts/sandbox-setup.shإذا لزم الأمر. - لقيم
OPENCLAW_IMAGEغير المحلية، يجب أن تحتوي الصورة بالفعل على دعم Docker CLI لتنفيذ التجربة (sandbox).
الأتمتة/التكامل المستمر (غير تفاعلي، بدون ضوضاء TTY)
للبرامج النصية و التكامل المستمر، عطّل تخصيص TTY الزائف لـ Compose باستخدام -T:
docker compose run -T --rm openclaw-cli gateway probe
docker compose run -T --rm openclaw-cli devices list --json
إذا كانت أتمتتك لا تصدر متغيرات جلسة Claude، فإن تركها غير معيّنة الآن يحل إلى قيم فارغة افتراضيًا في docker-compose.yml لتجنب تحذيرات متكررة "المتغير غير معيّن".
ملاحظة أمان الشبكة المشتركة (CLI + البوابة)
يستخدم openclaw-cli network_mode: "service:openclaw-gateway" حتى تتمكن أوامر CLI من الوصول إلى البوابة بشكل موثوق عبر 127.0.0.1 داخل Docker. عالج هذا كحد ثقة مشترك: ربط loopback ليس عزلًا بين هاتين الحاويتين. إذا كنت تحتاج إلى فصل أقوى، شغل الأوامر من مسار شبكة حاوية/مضيف منفصل بدلاً من خدمة openclaw-cli المجمعة. لتقليل التأثير إذا تم اختراق عملية CLI، يلغي تكوين compose NET_RAW/NET_ADMIN ويمكّن no-new-privileges على openclaw-cli. يكتب التكوين/مساحة العمل على المضيف:
~/.openclaw/~/.openclaw/workspace
هل تشغل على VPS؟ راجع Hetzner (Docker VPS).
استخدام صورة بعيدة (تخطي البناء المحلي)
يتم نشر الصور المبنية مسبقًا الرسمية في:
استخدم اسم الصورة ghcr.io/openclaw/openclaw (وليس صور Docker Hub ذات الأسماء المشابهة). العلامات الشائعة:
main— أحدث بناء منmain- `` — بناء علامات الإصدار (على سبيل المثال
2026.2.26) latest— أحدث علامة إصدار مستقرة
بيانات وصفية للصورة الأساسية
تستخدم صورة Docker الرئيسية حاليًا:
node:22-bookworm
تنشر صورة docker الآن شروحات صورة الأساس OCI (sha256 هو مثال):
org.opencontainers.image.base.name=docker.io/library/node:22-bookwormorg.opencontainers.image.base.digest=sha256:6d735b4d33660225271fda0a412802746658c3a1b975507b2803ed299609760aorg.opencontainers.image.source=https://github.com/openclaw/openclaworg.opencontainers.image.url=https://openclaw.aiorg.opencontainers.image.documentation=https://docs.openclaw.ai/install/dockerorg.opencontainers.image.licenses=MITorg.opencontainers.image.title=OpenClaworg.opencontainers.image.description=OpenClaw gateway and CLI runtime container imageorg.opencontainers.image.revision=<git-sha>org.opencontainers.image.version=<tag-or-main>org.opencontainers.image.created=
المرجع: شروحات صورة OCI سياق الإصدار: يستخدم تاريخ هذا المستودع المميز بالفعل Bookworm في v2026.2.22 وعلامات 2026 السابقة (على سبيل المثال v2026.2.21, v2026.2.9). افتراضيًا، يبني برنامج الإعداد الصورة من المصدر. لسحب صورة مبنية مسبقًا بدلاً من ذلك، عيّن OPENCLAW_IMAGE قبل تشغيل البرنامج النصي:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./docker-setup.sh
يكتشف البرنامج النصي أن OPENCLAW_IMAGE ليس الافتراضي openclaw:local ويشغل docker pull بدلاً من docker build. كل شيء آخر (الإعداد الأولي، بدء البوابة، إنشاء الرمز) يعمل بنفس الطريقة. لا يزال docker-setup.sh يعمل من جذر المستودع لأنه يستخدم docker-compose.yml المحلي والملفات المساعدة. يتخطى OPENCLAW_IMAGE وقت بناء الصورة المحلية؛ لا يحل محل سير عمل compose/الإعداد.
مساعدات Shell (اختياري)
لتسهيل إدارة Docker اليومية، ثبّت ClawDock:
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/shell-helpers/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
أضف إلى تكوين shell الخاص بك (zsh):
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
ثم استخدم clawdock-start, clawdock-stop, clawdock-dashboard، إلخ. شغل clawdock-help لجميع الأوامر. راجع دليل ClawDock المساعد للحصول على التفاصيل.
السير اليدوي (compose)
docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway
ملاحظة: شغل docker compose ... من جذر المستودع. إذا مكّنت OPENCLAW_EXTRA_MOUNTS أو OPENCLAW_HOME_VOLUME، يكتب برنامج الإعداد docker-compose.extra.yml؛ قم بتضمينه عند تشغيل Compose في مكان آخر:
docker compose -f docker-compose.yml -f docker-compose.extra.yml <command>
رمز واجهة التحكم + الاقتران (Docker)
إذا رأيت "غير مصرح" أو "تم قطع الاتصال (1008): الاقتران مطلوب"، احصل على رابط لوحة تحكم جديد ووافق على جهاز المتصفح:
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>
مزيد من التفاصيل: لوحة التحكم, الأجهزة.
نقاط ربط إضافية (اختياري)
إذا كنت تريد ربط أدلة مضيف إضافية داخل الحاويات، عيّن OPENCLAW_EXTRA_MOUNTS قبل تشغيل docker-setup.sh. يقبل هذا قائمة مفصولة بفواصل من نقاط ربط Docker ويطبقها على كل من openclaw-gateway و openclaw-cli عن طريق إنشاء docker-compose.extra.yml. مثال:
export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh
ملاحظات:
- يجب مشاركة المسارات مع Docker Desktop على macOS/Windows.
- يجب أن يكون كل إدخال
source:target[:options]بدون مسافات أو علامات تبويب أو أسطر جديدة. - إذا قمت بتحرير
OPENCLAW_EXTRA_MOUNTS، أعد تشغيلdocker-setup.shلإعادة إنشاء ملف compose الإضافي. - يتم إنشاء
docker-compose.extra.yml. لا تقم بتحريره يدويًا.
الإبقاء على مجلد home الحاوية بالكامل (اختياري)
إذا كنت تريد بقاء /home/node عبر إعادة إنشاء الحاوية، عيّن وحدة تخزين مسماة عبر OPENCLAW_HOME_VOLUME. ينشئ هذا وحدة تخزين Docker ويربطها في /home/node، مع الحفاظ على ن قاط ربط التكوين/مساحة العمل القياسية. استخدم وحدة تخزين مسماة هنا (وليس مسار ربط bind)؛ لنقاط ربط bind، استخدم OPENCLAW_EXTRA_MOUNTS. مثال:
export OPENCLAW_HOME_VOLUME="openclaw_home"
./docker-setup.sh
يمكنك الجمع بين هذا ونقاط الربط الإضافية:
export OPENCLAW_HOME_VOLUME="openclaw_home"
export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh
ملاحظات:
- يجب أن تطابق وحدات التخزين المسماة
^[A-Za-z0-9][A-Za-z0-9_.-]*$. - إذا قمت بتغيير
OPENCLAW_HOME_VOLUME، أعد تشغيلdocker-setup.shلإعادة إنشاء ملف compose الإضافي. - تبقى وحدة التخزين المسماة حتى تتم إزالتها باستخدام
docker volume rm.
تثبيت حزم apt إضافية (اختياري)
إذا كنت تحتاج إلى حزم نظام داخل الصورة (على سبيل المثال، أدوات بناء أو مكتبات وسائط)، عيّن OPENCLAW_DOCKER_APT_PACKAGES قبل تشغيل docker-setup.sh. يثبت هذا الحزم أثناء بناء الصورة، لذا تبقى حتى إذا تم حذف الحاوية. مثال:
export OPENCLAW_DOCKER_APT_PACKAGES="ffmpeg build-essential"
./docker-setup.sh
ملاحظات:
- يقبل هذا قائمة مفصولة بمسافات من أسماء حزم apt.
- إذا قمت بتغيير
OPENCLAW_DOCKER_APT_PACKAGES، أعد تشغيلdocker-setup.shلإعادة بناء الصورة.