Skip to content

Instantly share code, notes, and snippets.

@runcom
Last active October 25, 2016 22:49
Show Gist options
  • Save runcom/14c700d2d1b29e34a795685cb644d275 to your computer and use it in GitHub Desktop.
Save runcom/14c700d2d1b29e34a795685cb644d275 to your computer and use it in GitHub Desktop.
package main
import (
"bytes"
"io/ioutil"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"golang.org/x/net/context"
)
func main() {
defaultHeaders := map[string]string{"User-Agent": "engine-api-cli-1.0"}
cli, err := client.NewClient("unix:///var/run/docker.sock", "v1.24", nil, defaultHeaders)
if err != nil {
panic(err)
}
for {
ctx := context.Background()
config := &container.Config{
Image: "busybox",
Cmd: []string{"cat", "/test/test/ciaone"},
}
optsv := types.VolumeCreateRequest{Name: "1a"}
v, err := cli.VolumeCreate(ctx, optsv)
if err != nil {
panic(err)
}
hostConfig := &container.HostConfig{Binds: []string{v.Mountpoint + ":/test"}}
if _, err := cli.ContainerCreate(ctx, config, hostConfig, nil, v.Name); err != nil {
panic(err)
}
f, err := ioutil.ReadFile("test.tar")
if err != nil {
panic(err)
}
//time.Sleep(10 * time.Second)
copts := types.CopyToContainerOptions{}
if err := cli.CopyToContainer(ctx, v.Name, "/test", bytes.NewReader(f), copts); err != nil {
panic(err)
}
if err := cli.ContainerStart(ctx, v.Name, types.ContainerStartOptions{}); err != nil {
panic(err)
}
if err := cli.ContainerRemove(ctx, v.Name, types.ContainerRemoveOptions{Force: true}); err != nil {
panic(err)
}
if err := cli.VolumeRemove(ctx, v.Name); err != nil {
panic(err)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment