Dokumentasi!
Ketika Anda memutuskan untuk menulis sepeda sendiri dengan menghubungkan dari hub docker atau dari registri untuk secara otomatis memperbarui / meluncurkan kontainer di server, Anda mungkin perlu Docker Cli, yang akan membantu mengelola daemon Docker pada sistem Anda.

Agar berfungsi, Anda membutuhkan versi Go tidak lebih rendah dari 1.9.4
Jika Anda masih belum beralih ke modul, instal Cli dengan perintah berikut:
go get github.com/docker/docker/client
Peluncuran kontainer
Contoh berikut menunjukkan cara memulai wadah menggunakan Docker API. Di baris perintah Anda akan menggunakan docker run
, tetapi kami dapat dengan mudah mengatasi tugas ini di layanan kami.
Contoh ini setara dengan menjalankan docker run alpine echo hello world
package main { ctx := context.Background() cli, err := client.NewEnvClient() if err != nil { panic(err) }
Mendapatkan daftar wadah yang sedang berjalan
Contoh ini setara dengan menjalankan perintah 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) }
Hentikan semua wadah yang berjalan
Setelah Anda belajar cara membuat dan menjalankan kontainer, sekarang saatnya untuk belajar cara mengelolanya. Contoh berikut akan menghentikan semua wadah yang berjalan.
Jangan jalankan kode ini di server produksi!
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) }
Logging satu wadah
Anda dapat bekerja dengan wadah individual. Contoh berikut menampilkan log kontainer dengan pengidentifikasi yang ditentukan. Sebelum memulai, Anda perlu mengubah pengidentifikasi wadah yang lognya ingin Anda terima.
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}
Mendapatkan daftar gambar
Contoh ini setara dengan menjalankan 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) }
Tarik
Contoh ini setara dengan menjalankan 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) }
Unduh Gambar dengan Otentikasi Pengguna
Contoh ini setara dengan menjalankan docker pull
dengan otentikasi.
Data otentikasi dikirim dalam bentuk teks. Registri buruh pelabuhan resmi menggunakan HTTPS,
Registrasi pribadi juga harus dikonfigurasi untuk mengirimkan data menggunakan 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) }