پرش به مطلب اصلی

ادامه اجرای کانتینر

دستور resume برای ادامه اجرای کانتینری به‌کار می‌رود که قبلاً با دستور pause به حالت توقف موقتی درآمده است. با این دستور، پردازش‌هایی که در کانتینر متوقف شده‌اند، از همان نقطه ادامه پیدا می‌کنند.


🧩 دستور کلی

k3 container resume [options] <containerId>

آرگومان‌ها:

  • containerId: شناسه‌ی کانتینری که می‌خواهید ادامه اجرای آن را بدهید

⚙️ گزینه‌ها (Options)

گزینه کوتاهگزینه بلندتوضیح
-t--time <seconds>مدت‌زمان (به ثانیه) که سیستم برای ادامه اجرای کانتینر منتظر می‌ماند
-h--helpنمایش راهنمای کامل دستور

📥 مثال‌های کاربردی

✅ ادامه اجرای کانتینر با شناسه:

k3 container resume cont5

⏱ ادامه اجرا با زمان انتظار مشخص:

k3 container resume --time 5 cont5

⚠️ خطا در صورت اجرای دستور روی کانتینر غیر pause شده:

اگر کانتینر در وضعیت paused نباشد، اجرای این دستور با خطا همراه خواهد بود. می‌توانید ابتدا لیست کانتینرهای pause شده را ببینید:

k3 container list --status paused

اگر کانتینری در این لیست وجود نداشته باشد، نمی‌توانید آن را resume کنید.


خطاها و راه‌حل‌ها

خطا: "Container is not in a paused state"

پیام کامل:

Error resume the container:
{
"type": "INVALID_STATE",
"message": "Container is not in a paused state. Pause it first before resuming.",
"statusCode": 400
}

دلایل:

  • کانتینر در حال اجرا است (Running: true)
  • کانتینر pause نشده است (Paused: false)
  • کانتینر متوقف شده است (Stopped: true)

راه‌حل: ابتدا مطمئن شوید که کانتینر در وضعیت paused است:

k3 container list --status paused

اگر کانتینر در حال اجرا یا متوقف است، ابتدا آن را pause کنید:

k3 container pause <containerId>

سپس می‌توانید resume کنید:

k3 container resume <containerId>

نکات مهم

  • این دستور فقط روی کانتینرهایی قابل اجراست که وضعیت آن‌ها paused باشد.

  • برای متوقف کردن موقتی یک کانتینر، ابتدا از دستور k3 container pause استفاده کنید.

  • این دستور برای سناریوهایی کاربرد دارد که اجرای کانتینر باید موقتاً متوقف و سپس از همان نقطه ادامه پیدا کند (بدون ریست یا حذف).

  • اگر هیچ کانتینری در وضعیت paused وجود نداشته باشد، دستور resume نمی‌تواند اجرا شود.

  • وضعیت کانتینر باید دقیقاً paused باشد؛ اگر کانتینر running یا stopped باشد، resume ممکن نیست.

⚠️ یادآوری: اگر کانتینر به‌دلایلی در زمان مشخص شده --time از حالت pause خارج نشود، دستور ممکن است با خطا یا timeout مواجه شود.


تست جامع

#!/bin/bash

echo "Starting k3 container resume tests..."

echo "[1] Checking paused containers before resume"
sudo k3 container list --status paused
echo

echo "[2] Pause a running container first"
sudo k3 container pause cont5
echo

echo "[3] Resuming cont5 (after pausing)"
sudo k3 container resume cont5
echo

echo "[4] Resuming cont5 with --time 5"
sudo k3 container pause cont5
sudo k3 container resume --time 5 cont5
echo

echo "[5] Trying to resume a running container (should fail)"
sudo k3 container resume cont5
echo

echo "[6] Trying to resume nonexistentContainer (should fail)"
sudo k3 container resume nonexistentContainer
echo

echo "[7] Checking paused containers after resume"
sudo k3 container list --status paused
echo

echo "[8] Checking running containers"
sudo k3 container list --status running
echo

echo "All resume tests completed."

🆘 دریافت راهنما

برای مشاهده‌ی راهنمای کامل این دستور در خط فرمان:

k3 container resume -h