LoginSignup
1
0

More than 5 years have passed since last update.

Moby client 備忘録 1

Last updated at Posted at 2018-04-02

golangでdockerを操作した時のメモです

環境

Manjaro Linux
go version go1.9.4 linux/amd64
dep

読み込むパッケージ

main.go
import (
    "github.com/moby/moby/client"
    "github.com/docker/go-connections/nat"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/api/types/container"
    "github.com/docker/docker/api/types/network"
    "context"
    "net/http"
    "fmt"
)

dockerのイメージリストを取得(ローカル)

とりあえずイメージ一覧を取得してきます

main.go
func main() {
    ctx := context.Background()
    cl, _ := client.NewEnvClient()

    list, _ := cl.ImageList(ctx, types.ImageListOptions{All: true})


    fmt.Println(list)
}

これをdockerをインストールされているpcで動かすとリストを取得することができます

dockerのイメージリストを取得(リモート)

main.go
func main() {
    ctx := context.Background()
    tr := &http.Transport{}
    image, _ := client.NewClient("http://<IPアドレス>:<ポート>", client.DefaultVersion, &http.Client{Transport: tr}, map[string]string{})

    list, _ := cl.ImageList(ctx, types.ImageListOptions{All: true})

    fmt.Println(list)
}

NewEnvClientでいい感じにしたかったんですが...GoDoc見てもいまいちわからなかったのでNewClientを採用.
ただコード見た感じNewClientもNewClient結局同じものを読んでいるみたいなのでこのままにしておきます.
ちなみにdocker clientのデフォルトのポートは2375みたいです.

まとめ

dockerのRemote APIは2375のポートをデフォルトで使っているみたいなので基本から何もいじってなければ多分大丈夫だと思います

参考
https://godoc.org/github.com/docker/docker/client
https://docs.docker.com/develop/sdk/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0