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

داکر API و exec کردن داخل یه کانتینر

برای اینکه یه کامندی رو تو یه کانتینر اجرا بکنی باید اول یه instance بسازی. تو مرحله بعدی اون instance رو start بکنی و بعدش خروجیشو دریاف بکنی.

مرحله اول اجرای کامند توی یه کانتینر

POST /containers/{id}/exec

نام کانتینر یا ID کانتینر مورد نظر

ست کردن AttachStdin

ست کردن AttachStdout

ست کردن AttachStderr

ست کردن DetachKeys

ست کردن Tty

ست کردن Env

ست کردن Cmd

ست کردن Privileged

ست کردن User

ست کردن WorkingDir

اگه status code اش ۲۰۱ بود یعنی instance رو ساخته و توی بدنه response آی دی اون instance رو بهت بر میگردونه. در غیر این صورت هر status code دیگه ای بده مشکلی دارید.

sample request body:

{ &quotAttachStdin&quot: false, &quotAttachStdout&quot: true, &quotAttachStderr&quot: true, &quotDetachKeys&quot: &quotctrl-p,ctrl-q&quot, &quotTty&quot: false, &quotCmd&quot: [ &quotdate&quot ], &quotEnv&quot: [ &quotFOO=bar&quot, &quotBAZ=quux&quot ] }

sample response body:

{ &quotId&quot: &quotead002f66434faf891b0ea361444c2322f7e656058a88348e66c5b810d8e2377&quot }

مرحله دوم اجرای یه کامند

/exec/{id}/start

ست کردن آی دی instance ایجاد شده

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

ست کردن Detach

ست کردن Tty

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

sample request body:

{ &quotDetach&quot: false, &quotTty&quot: false }

sample response body:


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