وثائق!
عندما تقرر أن تكتب دراجتك الخاصة من خلال التثبيت من مركز الإرساء أو من السجل لتحديث / إطلاق الحاويات تلقائيًا على الخادم ، فقد تحتاج إلى Docker Cli ، مما سيساعد في إدارة البرنامج الخفي Docker على نظامك.

للعمل ، ستحتاج إلى إصدار Go لا يقل عن 1.9.4
إذا كنت مازلت لم تحول إلى الوحدات النمطية ، فقم بتثبيت Cli باستخدام الأمر التالي:
go get github.com/docker/docker/client
إطلاق الحاويات
يوضح المثال التالي كيفية بدء تشغيل حاوية باستخدام Docker API. في سطر الأوامر ، يمكنك استخدام docker run
، لكن يمكننا بسهولة التعامل مع هذه المهمة في خدمتنا.
هذا المثال يعادل تشغيل docker run alpine echo hello world
package main { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
الحصول على قائمة الحاويات قيد التشغيل
هذا المثال يكافئ تشغيل docker ps
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { cli, err := client.NewEnvClient() if err != nil { panic(err) }
وقف جميع الحاويات قيد التشغيل
بمجرد أن تتعلم كيفية إنشاء وتشغيل الحاويات ، فقد حان الوقت لمعرفة كيفية إدارتها. المثال التالي سيوقف جميع حاويات التشغيل.
لا تقم بتشغيل هذا الكود على خادم الإنتاج!
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
تسجيل حاوية واحدة
يمكنك العمل مع حاويات فردية. يعرض المثال التالي سجلات الحاوية ذات المعرف المحدد. قبل البدء ، تحتاج إلى تغيير معرف الحاوية التي تريد تلقي سجلاتها.
package main import ( "context" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) } options := types.ContainerLogsOptions{ShowStdout: true}
الحصول على قائمة الصور
هذا المثال يعادل تشغيل docker image ls
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { cli, err := client.NewEnvClient() if err != nil { panic(err) }
سحب
هذا المثال يكافئ تشغيل docker pull
package main import ( "context" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
قم بتنزيل الصورة باستخدام مصادقة المستخدم
هذا المثال يكافئ تشغيل docker pull
مع المصادقة.
يتم إرسال بيانات المصادقة في نص واضح. يستخدم السجل الرسمي لرسو السفن HTTPS ،
يجب أيضًا تكوين السجلات الخاصة لنقل البيانات باستخدام HTTPS.
package main import ( "context" "encoding/base64" "encoding/json" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }