Linus Torvalds
Linus Torvalds
خواندن ۲ دقیقه·۴ سال پیش

افزایش و کاهش دادن منابع service از طریق داکر API

آپدیت کردن سرویس از طریق داکر API پیچ و خم های خودش رو داره
آپدیت کردن سرویس از طریق داکر API پیچ و خم های خودش رو داره

برای اینکه منابع یه سرویس رو کم یا زیاد بکنی باید به این اندپوینت ریکوئست بزنی.

POST /services/{id}/update

نکته مهم اینه:

چونکه داری سرویس رو آپدیت میکنی باید همه چیزایی رو که وقت ساختن سرویس ست کرده بودی ست بکنی. برای تست به همین اندپوینت یه ریکوئست بزن ولی توش منابع رو ذکر نکن. سرویس همه منابع رو برای خودش میگیره و اصلا limitation ای در نظر نمیگیره

پس برای اینکه سرویس رو آپدیت بکنی باید توی json ای که مینویسی همه مقادیری رو که میخوای بدون تغییر بمونن باید ست بکنی.

ست کردن ID

اینجا id سرویس مورد نظر رو میدی

کوئری پارامتر ها

این سه مورد رو میتونی توی query string ست بکنی.

ست کردن version

اینجا میای ورژن سرویسی رو که میخوای آپدیت بکنی مینویسی. نکته اینه که این ورژن، docker tag نیست. بلکه وقتی از سرویس inspect میگیری توی بدنه response بهش دسترسی داری:

همون طوری که میبینی اینجا ورژنمون ۱۹ هست.
همون طوری که میبینی اینجا ورژنمون ۱۹ هست.

نکته بعدی اینه که هر بار سرویس رو آپدیت میکنی این ورژن عوض میشه.

ست کردن registryAuthFrom

اگه توی هدر x-registery-auth رو ست نکنی اینجا میتونی credentials رو مشخص کنی.

ست کردن rollback

اگه این کوئری پارامتر رو ست بکنی همه تنظیمات سرویس به تنظیمات قبلیش بر میگرده.

هدر ها

ست کردن هدر X-Registry-Auth

sample request body:

{ &quotName&quot: &quottop&quot, &quotTaskTemplate&quot: { &quotContainerSpec&quot: { &quotImage&quot: &quotbusybox&quot, &quotArgs&quot: [ &quottop&quot ] }, &quotResources&quot: { &quotLimits&quot: {}, &quotReservations&quot: {} }, &quotRestartPolicy&quot: { &quotCondition&quot: &quotany&quot, &quotMaxAttempts&quot: 0 }, &quotPlacement&quot: {}, &quotForceUpdate&quot: 0 }, &quotMode&quot: { &quotReplicated&quot: { &quotReplicas&quot: 1 } }, &quotUpdateConfig&quot: { &quotParallelism&quot: 2, &quotDelay&quot: 1000000000, &quotFailureAction&quot: &quotpause&quot, &quotMonitor&quot: 15000000000, &quotMaxFailureRatio&quot: 0.15 }, &quotRollbackConfig&quot: { &quotParallelism&quot: 1, &quotDelay&quot: 1000000000, &quotFailureAction&quot: &quotpause&quot, &quotMonitor&quot: 15000000000, &quotMaxFailureRatio&quot: 0.15 }, &quotEndpointSpec&quot: { &quotMode&quot: &quotvip&quot } }

ریسپانس

اگه status code رو بهت ۲۰۰ داد همه چی اوکیه وگرنه مشکل داری. توی بدنه response هم Warnings رو داری.


dockerdocker apiupdate serviceswarm
شاید از این پست‌ها خوشتان بیاید