Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

كيف نقلت خادم Docker الخاص بي إلى نظام جديد

نقل خادم Docker من نظام إلى آخر قد يبدو مهمة معقدة، لكنه في الحقيقة يمكن إنجازه بسلاسة إذا اتبعت الخطوات الصحيحة. الكثير من المطورين يواجهون تحديات عند الحاجة إلى تغيير النظام أو ترقية الخادم، مثل فقدان البيانات أو تعطل الحاويات أثناء النقل. باستخدام الأدوات المدمجة في Docker وبعض الممارسات المجربة، يمكن ضمان انتقال آمن وسريع مع الحفاظ على جميع الإعدادات والتطبيقات كما هي.

shutterstock_2428013233-1-scaled خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

هل فكرتَ يومًا في نقل حاويات Docker من خادم إلى آخر؟ راودتني مؤخرًا رغبةٌ عارمةٌ في ترقية مختبري المنزلي، حيثُ تخلّصتُ من خادمٍ قديمٍ مُثبّتٍ على الرفّ واستبدلتُه بنظامٍ أحدث وأكثر قوة، لكن نقل حاويات Docker كان أمرًا مُرهقًا لم أكن أعرف كيف أتعامل معه.

في الواقع، لم يكن الأمر صعبًا، بل كان مُستهلكًا للوقت أكثر من كونه مُخيفًا أو مُحبطًا. لم يتطلب النقل سوى بعض الأوامر والكثير من الصبر (حسب عدد حاويات Docker التي تُشغّلها). إليكَ كيف نقلتُ خادم Docker الخاص بي إلى نظامٍ جديدٍ كليًا (دون نقل الجهاز الافتراضي نفسه).

نقل مُضيفات Docker ليس بالضرورة أمرًا مُرهقًا

في يناير الماضي، كانت المرة الأولى التي نقلتُ فيها حاويات Docker. انتقلتُ من Unraid إلى تثبيت Docker كامل في جهازٍ افتراضيٍّ يعمل بنظام Ubuntu. كانت هذه خطوةً سهلةً للغاية، حيث استخدمتُ طرق النسخ الاحتياطي المُدمجة لبعض التطبيقات، وبدأتُ أخرى من الصفر.

مع ذلك، قررتُ مؤخرًا نقل مُضيف Docker الافتراضي الخاص بي من خادم إلى آخر. وبينما كنتُ أفكر في نقل الجهاز الافتراضي نفسه، قررتُ اتخاذ مسار مختلف ونقل تثبيت Docker إلى جهاز افتراضي جديد تمامًا.

كان التفكير في هذا الأمر مُرهقًا للغاية. سأضطر إلى إيقاف تشغيل حاويات Docker لفترة طويلة لإجراء عملية النقل، وهناك العديد من الأخطاء التي قد تحدث أثناء النقل.

ومع ذلك، بمجرد أن تعمقتُ في العملية، لم تكن بالسوء الذي توقعته. صحيح أنها ستستغرق بضع ساعات (وقد واجهتُ بعض المشاكل بالتأكيد)، ولكن بشكل عام كانت العملية سهلة نسبيًا ولم تُسبب أي متاعب.

تأكد من تجهيز النظام الجديد بشكل صحيح

screenshot-2025-08-21-at-4-14-10-pm خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

بدأتُ بالتأكد من جاهزية جهازي الافتراضي الجديد. تأكدتُ أولًا من استخدامي نفس إصدار أوبونتو: Server 24.04 LTS. لطالما كان خادم أوبونتو خياري المفضل كلما احتجتُ إلى خادم لينكس. أنا مرتاحٌ فيه تمامًا.

اقرأ أيضا:  أساليب لتخصيص أوامر Linux للحصول على نتائج دقيقة

بعد تثبيت خادم أوبونتو 24.04 على جهازي الافتراضي الجديد، تأكدتُ من إعداد Docker وأي تبعيات أخرى أحتاجها وجاهزيته للاستخدام. يشمل ذلك أي برامج تشغيل إضافية لـ NVIDIA أو Intel، والتأكد من ضبط جميع مسارات المجلدات التي أحتاجها مع Docker.

بعد إعداد كل ذلك، أوقفتُ كلاً من خدمة Docker ومقبسها باستخدام الأوامر التالية:

systemctl stop docker.socket
systemctl stop docker

قد لا تحتاج إلى تشغيل كلا الأمرين، لكنني فعلتُ. أدى هذا إلى إيقاف تشغيل Docker، مما مكّنني من إجراء تغييرات على نظام ملفات Docker الأساسي دون أي مشاكل.

بعد ذلك، شغّلتُ نفس الأوامر تمامًا على النظام القديم. كان عليّ التأكد من إيقاف تشغيل Docker على النظام القديم قبل جمع الملفات، لأن ذلك سيضمن عدم حدوث أي تغيير من بداية عملية الترحيل إلى انتهائها.

هذا يعني أيضًا إيقاف تشغيل جميع حاويات Docker الخاصة بي. بصراحة، كان هذا أسوأ جزء بالنسبة لي. يُشغّل مختبري المنزلي منزلي بالكامل باستخدام Docker، من Home Assistant إلى Audiobookshelf وPlex والعديد من الخدمات الأخرى. إيقاف تشغيل Docker يعني إيقاف تشغيل هذه الأنظمة، لذلك اضطررتُ إلى انتظار الوقت المناسب للقيام بذلك.

في النهاية، وجدتُ وقتًا كان فيه الخادم خاملًا، وتمكنتُ من المتابعة بإيقاف تشغيل Docker ثم الانتقال إلى الخطوة التالية: تجهيز جميع الملفات للنقل.

جمع جميع ملفات Docker

screenshot-2025-08-21-at-4-16-21-pm خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

كان هذا أطول جزء من العملية بالنسبة لي. انتهى بي الأمر بحذف عدد لا بأس به من الملفات والمجلدات من المجلد الذي أربط فيه وحدات تخزين Docker لأحاول تسريع العملية قدر الإمكان، لكن الأمر استغرق بضع ساعات.

بشكل أساسي، عليك ضغط مجلد Docker، ثم، إذا كنت تستخدم منطقة مختلفة لتركيب وحدات التخزين، فسيتم تثبيت هذا المجلد أيضًا. إذا كنت تستخدم وحدات تخزين Docker فقط، فسيتم اكتشافها بالأمر الأول.

في البداية، شغّلت الأمر التالي على خادمي القديم:

sudo tar -czvf docker-backup.tar.gz /var/lib/docker

يقوم هذا الأمر بنسخ مجلد /var/lib/docker احتياطيًا إلى ملف tar.gz. قد يستغرق هذا بعض الوقت، ويعتمد ذلك على عدد الحاويات التي تُشغّلها، وما إذا كنت تستخدم Docker Volumes أم لا. بالنسبة لي، استغرق الأمر حوالي 30 إلى 45 دقيقة.

اقرأ أيضا:  خسارة الوزن بفعالية مع هاتف iPhone

بعد ذلك، شغّلتُ الأمر التالي على خادمي القديم:

sudo tar -cvzf docker-files.tar.gz /portainer

بما أنني أستخدم Portainer كمدير لـ Docker، فأنا أضع جميع ملفات Docker في مجلد /portainer على الخادم. لديّ مجلدات /portainer/audiobookshelf و/portainer/plex، إلخ. يقوم الأمر أعلاه بنسخ مجلد /portainer إلى ملف مضغوط، مما يُسهّل نقله. استغرق النسخ الاحتياطي حوالي ساعة نظرًا لحجم البيانات الموجودة في مجلدات Docker Volume.

بعد الانتهاء من نسخ كلا المجلدين، أصبحتُ مستعدًا للانتقال إلى الخطوة التالية: نقل الأرشيفات المضغوطة إلى الخادم الجديد.

نقل كل شيء إلى النظام الجديد سهل وبسيط.

image خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

لديّ شبكة منزلية بسرعة 205 جيجابايت/ثانية، وأُفضّل الاستفادة منها قدر الإمكان. لذلك، وجدتُ أمرًا لنقل الملف من خادم إلى آخر مع عرض سرعات النقل في الطرفية:

rsync -ah --info=progress2 docker-backup.tar.gz user@remote-host:/destination/path/

باستخدام هذا الأمر، تمكنتُ من مراقبة عملية النقل والتأكد من سير كل شيء وفقًا للخطة. ولحسن الحظ، حدث ذلك. في غضون دقائق قليلة، نُقلت الملفات من الخادم القديم إلى الخادم الجديد، وكنتُ مستعدًا للمتابعة.

بالطبع، إذا كنتَ تفضل، يمكنك استخدام USB لنقل الملفات من خادم إلى آخر. خادمي القديم (نظام Dell R720 المُثبّت على الرف) مزود بمنفذ USB 2.0 فقط، لذا كان نقل الملفات عبر الشبكة أسرع بكثير.

بمجرد وضع الملفات على الخادم الجديد، فك ضغطها ببساطة. بدأتُ بمجلد Docker:

sudo tar -xpf docker-backup.tar.gz -C /

عندما انتهى هذا، قمت بتشغيل:

sudo tar -xpf docker-files.tar.gz -C /

أعاد هذا جميع ملفات Docker القديمة ووحدات التخزين إلى أماكنها الصحيحة، وحافظ على ضبط الأذونات بشكل صحيح، وهذا هو الجزء الأكبر من عملية النقل.

في الواقع، استغرقت عملية ضغط Docker، ونقل ملفات tar، ثم فك ضغط الملفات معظم وقت النقل. إجمالاً، استغرقت هذه الإجراءات الثلاثة حوالي ثلاث إلى أربع ساعات على خادمي.

ومع ذلك، بمجرد إتمامها، كنت على بُعد خطوة واحدة من اكتمال النقل. والآن، حان الوقت أخيرًا لتشغيل Docker على الخادم الجديد.

شغّل Docker على النظام الجديد، وستبدأ حاوياتك بالعمل

بعد وضع جميع الملفات في مكانها، شغّلت Docker لأول مرة مع جميع الحاويات في مكانها. كان هذا بسيطًا، ولم يتطلب سوى أمرين:

systemctl start docker
systemctl start docker.socket

توقعتُ أن تتعطل العديد من الأشياء عند تشغيل Docker بعد النقل. لكن بدلاً من ذلك، عادت معظم الأشياء للعمل بسلاسة وجاهزة. في الواقع، هذا كل ما يتطلبه تشغيل Docker على جهازك الجديد.

اقرأ أيضا:  طرق التنقل بسهولة في نظام ملفات Linux باستخدام سطر الأوامر

إذا لم يكن هناك اختلاف كبير في التكوين بين نظامك القديم والجديد، فسيعمل كل شيء على ما يرام. أما إذا كنت مثلي، وتغيرت كثيرًا بين النظامين، فهناك بعض الأمور التي يجب الانتباه إليها.

أمور يجب الانتباه إليها عند النقل

a-container-floating-in-the-sea-with-the-docker-logo-inside-it خطوات مضمونة لنقل خادم Docker إلى نظام جديد بسهولة

كان من أوائل الأمور التي اضطررتُ لإصلاحها تغيير بعض الحاويات التي كانت تستخدم بيئة تشغيل NVIDIA إلى بيئة تشغيل Intel. على خادمي القديم، كنتُ أستخدم بطاقة رسومات GTX 1650 للمساعدة في معالجة الذكاء الاصطناعي وتحويل الترميز. أما الخادم الجديد، فكان مزودًا بمعالج i9-13900K مع بطاقة رسومات مدمجة من Intel، قادرة على التعامل مع نفس أحمال العمل.

استغرق هذا بعض الجهد، وما زلتُ لم أتحول بالكامل (لقد تخلّيتُ عن Scrypted وتركتُه يعمل على المعالج فقط بدلاً من وحدة معالجة الرسومات المدمجة)، ولكن بشكل عام، كان التحول بسيطًا جدًا.

واجهتُ أيضًا مشكلة كبيرة مع Home Assistant. لسبب ما، لم تنقل حاوية Docker الخاصة بـ Home Assistant أيًا من إعداداتها. هناك بعض معلومات التكوين التي أحتفظ بها في /portainer/homeassistant، ولكنها بدأت كما لو أنني لم أستخدم Home Assistant من قبل.

كان هذا حلاً سهلاً. ببساطة، أعدتُ تشغيل الجهاز الافتراضي القديم، وشغّلتُ عليه Home Assistant، وحمّلتُ ملف النسخ الاحتياطي، واسترجعتُه على الجهاز الافتراضي الجديد. هذا أعادني للعمل فورًا.

قد تحتاج بعض شبكات Docker إلى مراجعة شاملة. على سبيل المثال، مع Scrypted، اضطررتُ للعودة إلى شبكة الاستضافة من شبكة Scrypted-default جديدة تم إنشاؤها لسبب ما.

كان عليّ أيضًا ضبط عنوان IP الثابت على الجهاز الافتراضي الجديد. ثم، اضطررتُ إلى تحديث بعض المكونات الأخرى المتفرقة حول الخادم لجعله يعمل بسلاسة مع الرسومات المدمجة التي كنتُ أستخدمها.

بشكل عام، كانت عملية الانتقال سلسة جدًا، وأنا سعيد جدًا بالخادم الجديد. إنه أسرع وأكثر استجابة وكفاءة من الخادم القديم، وكل ذلك مع استهلاك طاقة أقل.

كان الانتقال بسيطًا نسبيًا، ويسعدني أنني تعلمتُ كيفية نقل حاويات Docker من نظام إلى آخر. أنا متأكد من أن هذا سيكون مفيدًا في المستقبل!

إذا لم يسبق لك استخدام حاويات Docker، أو كنتَ مبتدئًا، فإن Docker أداة رائعة. فهو يُشغّل مختبري المنزلي بأكمله تقريبًا بمفرده.

إليكم بعضًا من حاويات Docker المفضلة لديّ، والتي أعتقد أن كل مُختبر منزلي يجب أن يستخدمها. معظمها سهل الإعداد ويُضيف قيمة كبيرة إلى إعداداتك. في الواقع، أصبح مختبري المنزلي من أكثر الأشياء فائدةً في منزلي.

النجاح في نقل خادم Docker يعتمد على التخطيط الجيد وتنفيذ الخطوات بترتيب صحيح. الاحتفاظ بنسخة احتياطية قبل بدء العملية وتوثيق الإعدادات يساعد على تجنب الأخطاء وضمان تشغيل الحاويات في النظام الجديد دون مشاكل. اتباع الطريقة المناسبة يجعل عملية النقل أسرع وأكثر أمانًا، مما يمنحك خادمًا جاهزًا للعمل بكفاءة عالية على النظام الجديد.

زر الذهاب إلى الأعلى