Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "context"
  5. "fmt"
  6. "io"
  7. "os"
  8.  
  9. "github.com/docker/docker/api/types"
  10. "github.com/docker/docker/api/types/container"
  11. "github.com/docker/docker/client"
  12. )
  13.  
  14. func main() {
  15. cli, err := client.NewEnvClient()
  16. if err != nil {
  17. panic(err)
  18. }
  19. defer cli.Close()
  20.  
  21. ctx := context.Background()
  22.  
  23. _, err = cli.ImagePull(ctx, "alpine", types.ImagePullOptions{})
  24. if err != nil {
  25. panic(err)
  26.  
  27. }
  28.  
  29. containerConfig := &container.Config{
  30. Image: "alpine",
  31. Cmd: []string{"echo", "hello world"},
  32. }
  33.  
  34. resp, err := cli.ContainerCreate(ctx, containerConfig, nil, nil, "")
  35. if err != nil {
  36. panic(err)
  37. }
  38.  
  39. if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
  40. panic(err)
  41. }
  42.  
  43. statusCode, err := cli.ContainerWait(ctx, resp.ID)
  44. if err != nil {
  45. panic(err)
  46. }
  47.  
  48. fmt.Println(statusCode)
  49.  
  50. out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true})
  51. if err != nil {
  52. panic(err)
  53. }
  54.  
  55. io.Copy(os.Stdout, out)
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement