عميل عامل ميناء أحدث مع مضيف عامل ميناء أقدم

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

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

$ docker versionClient version: 1.4.1Client API version: 1.16Go version (client): go1.4Git commit (client): 5bc2ff8OS/Arch (client): darwin/amd64FATA[0000] Error response from daemon: client and server don't have same version (client : 1.16, server: 1.15)

أعرف أن الاتصال نفسه يعمل لأن fig يعمل:

$ cat > fig.ymltest:    image: busybox$ fig run --rm test sh/ # hostname -f084f75fb59d4

هل هناك طريقة يمكنني من خلالها إخبار عميل عامل الإرساء الأحدث باستخدام إصدار واجهة برمجة تطبيقات عامل الإرساء الأقدم حتى أتمكن من الوصول إلى مضيف عامل الإرساء الأحدث?

منذ عامل الميناء 1.10.0 ، هناك خيار لتجاوز إصدار أبي المستخدمة للاتصال العميل عامل الميناء مع محرك عامل الميناء.

فقط باستخدام متغير بيئة عامل الإرساء.

من عند.:

$ docker versionClient: Version:      1.10.0 API version:  1.22 Go version:   go1.5.3 Git commit:   590d510 Built:        Fri Feb  5 08:21:41 UTC 2016 OS/Arch:      darwin/amd64Error response from daemon: client is newer than server (client API version: 1.22, server API version: 1.21)$ DOCKER_API_VERSION=1.21 docker versionClient: Version:      1.10.0 API version:  1.21 Go version:   go1.5.3 Git commit:   590d510 Built:        Fri Feb  5 08:21:41 UTC 2016 OS/Arch:      darwin/amd64Server: Version:      1.9.1 API version:  1.21 Go version:   go1.4.3 Git commit:   a34a1d5 Built:        Fri Nov 20 17:56:04 UTC 2015 OS/Arch:      linux/amd64

المرجع: https://docs.docker.com/engine/reference/commandline/cli/#environment-variables

تحرير

منذ عامل الميناء 1.13 ، كلي لديه تحسين التوافق إلى الوراء. وفقا ل https://blog.docker.com/2017/01/whats-new-in-docker-1-13 :

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

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

مجرد جعل استنساخ المحلي من الريبو ، وجعل بناء ، وجعل ثنائي ثم مبادلة ثنائي المنتجة:

sudo service docker stop ; sudo cp $(which docker) $(which docker)_ ; sudo cp ./bundles/1.3.3-dev/binary/docker-1.3.3-dev $(which docker);sudo service docker start

استخدم عامل ميناء _ عميل_ على ريل?

@ مايكلهامبتون المطورين الاتصال بهذا المربع عامل الميناء على مختلف محطات العمل ويندوز ونظام التشغيل العاشر. أنها تميل إلى أن يكون بوت2دوكر تثبيت وترغب في استخدام نفس العميل عامل الميناء وأشار في هذا المضيف.

الخيار المثالي ، إذن ، هو استخدام توزيعة لينكس التي تتعقب أحدث إصدار عامل الميناء. في الوقت الحالي ، هذا خادم فيدورا.

انا التخمين ان كنت ترغب في الرجال العملية للترقية إلى ريل 7 ،والتي * حاليا * يبدو أن 1.2 ، وسوف زيادة (كما هو الحال في قناة إضافات ، لذلك يمكن أن تنمو بشكل أسرع من جوهر). إذا كان فريق العمليات الخاصة بك لا يمكن أن تدعم ريل 7 (مع دعم ريد هات المدفوعة) ، ثم أنها بالتأكيد لا يمكن أن تدعم شيئا أكثر نزيف حافة مثل فيدورا. المطورين الخاص بك تحتاج فقط لقبول أنهم بحاجة إلى رمز إلى بيئة التشغيل القياسية. انظر أيضا https://access.redhat.com/solutions/1408853 " كيف يتم دعم عامل الميناء في ريل 7.1?"