
سكربت bash خفيف بدون أي تبعيات يمنحك صدفة تفاعلية محاكاة داخل حاوية Docker — باستخدام curl وdd وod وawk فقط. لا حاجة إلى Python أو jq أو أي محرر.
مصمّم للبيئات التي لا يتوفر لك فيها سوى وصول مباشر إلى الصدفة وتحتاج فيها إلى تنفيذ أوامر داخل حاوية Docker عبر Docker Engine API.
بدلاً من استخدام Docker CLI، يتواصل هذا السكربت مباشرةً مع Docker Engine REST API عبر HTTP (عادةً ما يكون متاحًا على http://192.168.65.7:2375 في بيئات Docker Desktop / WSL2).
يقوم السكربت بما يلي:
C:\ الخاص بنظام Windowsdd + od فقط — دون الحاجة إلى Pythonيلفّ Docker جميع مخرجات exec في تنسيق تأطير ثنائي:
[1 byte: stream type] [3 bytes: padding] [4 bytes: payload size (big-endian)] [payload...]
يفكّ هذا السكربت ترميز هذا التنسيق إطارًا بإطار باستخدام أدوات Unix القياسية فقط.
bashcurldd وod وawk وgrep وcut — جميعها أدوات Unix قياسيةhttp://192.168.65.7:2375 (Docker Desktop على WSL2)لا jq، لا Python، لا nano، لا محرر.
git clone https://github.com/yourusername/docker-shell.git
cd docker-shell
chmod +x docker_shell.sh
bash docker_shell.sh
================================================
Docker Emulated Shell [target: alpine_escape]
Commands: start | status | run <cmd> | exit
================================================
docker> start
docker> status
docker> run ls /mnt
docker> run ls /mnt/Users
docker> run cat /etc/os-release
docker> run id
docker> exit
تركّب الحاوية محرك الأقراص C:\ الخاص بنظام Windows (عبر WSL2) عند /mnt:
| مسار Windows | داخل الحاوية |
|---|
run هو مثيل exec مستقل — لا يتم حفظ الحالة بين الأوامر. استخدم run cd /some/dir && ls لربط الأوامر في استدعاء واحد.alpine_escape)، وليس بمعرّفها، لذلك لن ينفّذ أوامر في الحاوية الخاطئة عن طريق الخطأ./tmp/docker_out.bin باستخدام dd إطارًا بإطار.عدّل هذه المتغيرات في أعلى السكربت لتتوافق مع بيئتك:
DOCKER="http://192.168.65.7:2375" # Docker Engine API address
CONTAINER="alpine_escape" # Container name
AGPLv3
| الأمر | الوصف |
|---|
start | إنشاء حاوية alpine_escape (إذا لزم الأمر) وتشغيلها |
status | عرض معرف الحاوية وحالتها الحالية |
run <cmd> | تنفيذ أي أمر صدفة داخل الحاوية |
exit / quit | الخروج من الصدفة المحاكاة |
C:\ | /mnt |
C:\Users | /mnt/Users |
C:\Program Files | /mnt/Program Files |
C:\Windows\System32 | /mnt/Windows/System32 |