diff --git a/engine/api/get-started.md b/engine/api/get-started.md index 519de27674..8b91b31228 100644 --- a/engine/api/get-started.md +++ b/engine/api/get-started.md @@ -104,49 +104,49 @@ print client.containers.run("alpine", ["echo", "hello", "world"]) package main import ( - "io" - "os" + "io" + "os" - "github.com/docker/docker/client" - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/container" - "golang.org/x/net/context" + "github.com/docker/docker/client" + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" + "golang.org/x/net/context" ) func main() { - ctx := context.Background() - cli, err := client.NewEnvClient() - if err != nil { - panic(err) - } + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - _, err = cli.ImagePull(ctx, "docker.io/library/alpine", types.ImagePullOptions{}) - if err != nil { - panic(err) - } + _, err = cli.ImagePull(ctx, "docker.io/library/alpine", types.ImagePullOptions{}) + if err != nil { + panic(err) + } - resp, err := cli.ContainerCreate(ctx, &container.Config{ - Image: "alpine", - Cmd: []string{"echo", "hello world"}, - }, nil, nil, "") - if err != nil { - panic(err) - } + resp, err := cli.ContainerCreate(ctx, &container.Config{ + Image: "alpine", + Cmd: []string{"echo", "hello world"}, + }, nil, nil, "") + if err != nil { + panic(err) + } - if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { - panic(err) - } + if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { + panic(err) + } - if _, err = cli.ContainerWait(ctx, resp.ID); err != nil { - panic(err) - } + if _, err = cli.ContainerWait(ctx, resp.ID); err != nil { + panic(err) + } - out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) - if err != nil { - panic(err) - } + out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) + if err != nil { + panic(err) + } - io.Copy(os.Stdout, out) + io.Copy(os.Stdout, out) } ``` @@ -201,43 +201,43 @@ print container.id package main import ( - "fmt" - "io" - "os" + "fmt" + "io" + "os" - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/container" - "github.com/docker/docker/client" - "golang.org/x/net/context" + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/client" + "golang.org/x/net/context" ) func main() { - ctx := context.Background() - cli, err := client.NewEnvClient() - if err != nil { - panic(err) - } + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - imageName := "bfirsh/reticulate-splines" + imageName := "bfirsh/reticulate-splines" - out, err := cli.ImagePull(ctx, imageName, types.ImagePullOptions{}) - if err != nil { - panic(err) - } - io.Copy(os.Stdout, out) + out, err := cli.ImagePull(ctx, imageName, types.ImagePullOptions{}) + if err != nil { + panic(err) + } + io.Copy(os.Stdout, out) - resp, err := cli.ContainerCreate(ctx, &container.Config{ - Image: imageName, - }, nil, nil, "") - if err != nil { - panic(err) - } + resp, err := cli.ContainerCreate(ctx, &container.Config{ + Image: imageName, + }, nil, nil, "") + if err != nil { + panic(err) + } - if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { - panic(err) - } + if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil { + panic(err) + } - fmt.Println(resp.ID) + fmt.Println(resp.ID) } ``` @@ -286,27 +286,27 @@ for container in client.containers.list(): package main import ( - "context" - "fmt" + "context" + "fmt" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" ) func main() { - cli, err := client.NewEnvClient() - if err != nil { - panic(err) - } + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) - if err != nil { - panic(err) - } + containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) + if err != nil { + panic(err) + } - for _, container := range containers { - fmt.Println(container.ID) - } + for _, container := range containers { + fmt.Println(container.ID) + } } ``` @@ -356,29 +356,29 @@ for container in client.containers.list(): package main import ( - "context" + "context" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" + "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) - } + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - containers, err := cli.ContainerList(ctx, types.ContainerListOptions{}) - if err != nil { - panic(err) - } + containers, err := cli.ContainerList(ctx, types.ContainerListOptions{}) + if err != nil { + panic(err) + } - for _, container := range containers { - if err := cli.ContainerStop(ctx, container.ID, nil); err != nil { - panic(err) - } - } + for _, container := range containers { + if err := cli.ContainerStop(ctx, container.ID, nil); err != nil { + panic(err) + } + } } ``` @@ -430,28 +430,28 @@ print container.logs() package main import ( - "context" - "io" - "os" + "context" + "io" + "os" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" + "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) - } + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - options := types.ContainerLogsOptions{ShowStdout: true} - out, err := cli.ContainerLogs(ctx, "f1064a8a4c82", options) - if err != nil { - panic(err) - } + options := types.ContainerLogsOptions{ShowStdout: true} + out, err := cli.ContainerLogs(ctx, "f1064a8a4c82", options) + if err != nil { + panic(err) + } - io.Copy(os.Stdout, out) + io.Copy(os.Stdout, out) } ``` @@ -498,27 +498,27 @@ for image in client.images.list(): package main import ( - "context" - "fmt" + "context" + "fmt" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" ) func main() { - cli, err := client.NewEnvClient() - if err != nil { - panic(err) - } + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - images, err := cli.ImageList(context.Background(), types.ImageListOptions{}) - if err != nil { - panic(err) - } + images, err := cli.ImageList(context.Background(), types.ImageListOptions{}) + if err != nil { + panic(err) + } - for _, image := range images { - fmt.Println(image.ID) - } + for _, image := range images { + fmt.Println(image.ID) + } } ``` @@ -566,27 +566,29 @@ print image.id package main import ( - "io" - "os" + "io" + "os" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" - "golang.org/x/net/context" + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" + "golang.org/x/net/context" ) func main() { - ctx := context.Background() - cli, err := client.NewEnvClient() - if err != nil { - panic(err) - } + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } - out, err := cli.ImagePull(ctx, "alpine", types.ImagePullOptions{}) - if err != nil { - panic(err) - } + out, err := cli.ImagePull(ctx, "alpine", types.ImagePullOptions{}) + if err != nil { + panic(err) + } - io.Copy(os.Stdout, out) + defer out.Close() + + io.Copy(os.Stdout, out) } ``` @@ -606,6 +608,109 @@ $ curl --unix-socket /var/run/docker.sock \ + +### Pull images with authentication + +Pull images, like `docker pull`, with authentication: + +> **Note**: Credentials are sent in the clear. Docker's official registries use +> HTTPS. Private registries should also be configured to use HTTPS. + +
+ +