@sam سام، شركتي تحظر الآن Docker Hub. أقوم بتشغيل Docker لـ Discourse في بيئات متعددة وأحتاج إلى الترقية. فشل بالطبع:
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Unable to find image 'discourse/base:2.0.20230502-0058' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client.
أسهل طريقة أراها للترقية هي استخدام جهاز آخر ليس على نفس الشبكة وتنزيل أحدث صورة أساسية لـ Discourse… ثم بطريقة ما سحبها أو دفعها إلى الجهاز المراد ترقيته. ثم بطريقة ما، إجبار Discourse أو المشغل على البحث محليًا وعدم محاولة السحب من Docker Hub… لقد رأيت مواضيع مختلفة حيث أجد تقريبًا أن هذا يمكن أن ينجح ولكن لا شيء واضح. كيف يمكنني فعل ذلك؟
@Falco - شكراً جزيلاً، أتطلع إلى مثال سطح المكتب… آمل أن أفهم هذا بشكل صحيح لأنني قلق بشأن مسح مواقعي المضيفة بأكثر من مجرد “ترقية”
لدي موقع شركة Discourse Docker الخاص بي الذي لم يعد محدثًا ويحتوي على معلومات معينة لا يمكنني نقلها خارج الشركة… بسبب قواعد الشركة وما إلى ذلك. هناك 4 منها مختلفة… لنسميها: np.falcoisgreat.com، stg.falcoisgreat.com، tst.falcoisgreat.com و www.falcoisgreat.com كلها خلف حوالي 4 إصدارات صغيرة… لم يعد بإمكانها الوصول إلى مستودع Docker عندما يحاول المشغل الوصول إلى أحدث صورة أساسية لـ Docker وجلبها.
لذلك، في العالم الخارجي لحرية الإنترنت، قمت بتشغيل صندوق Ubuntu جديد مع Discourse Docker لسحب أحدث صورة أساسية لـ Discourse Docker (في الواقع على https://discourse1.codeplus.cloud) - الآن ما أنوي فعله هو الحصول على الصورة الجديدة فقط، بدون محتوى، بدون أي شيء، ضغطها باستخدام docker save على ما أعتقد، ثم سحب ملف الضغط هذا إلى np.falcoisgreat.com باستخدام curl أو sftp ثم استخدام docker load؟
لا أعرف تفاصيل ذلك وسأبحث وأقرأ ولكن ما يقلقني هو أنني سأمسح المحتوى والتكوين الحالي لـ “np.falcoisgreat.com” — سأقوم بعمل نسخ احتياطية بالطبع ولكن من الأفضل لي أن أعرف طريقة لعدم مسح أي شيء. هل يمكنك تأكيد أن هذا الحل مخصص لما أعتقد أنه مخصص له؟
ssh root@server1
docker pull discourse/base:2.0.20230502-0058
# إذا كان server1 يمكنه الوصول إلى server2
docker save discourse/base:2.0.20230502-0058 | bzip2 | ssh root@server2 docker load
# انتظر حتى يكتمل واخرج من server1
ssh root@server2
cd /var/discourse
./launcher rebuild app
# إذا كان server1 لا يمكنه الوصول إلى server2
docker save -o /tmp/discourse-base-image.tar discourse/base:2.0.20230502-0058
# انقل الملف إلى server2 عبر محرك أقراص إبهام، أو ftp، أو أقراص مرنة، إلخ
ssh root@server2
docker load -i /tmp/discourse-base-image.tar
cd /var/discourse
./launcher rebuild app