func main() { docker, err := dockerclient.NewDockerClient(os.Getenv("DOCKER_HOST"), nil) if err != nil { log.Fatal(err) } client = docker client.StartMonitorEvents(eventCallback, nil) waitForInterrupt() }
//AdjustDockerOOMPriority Adjusts the OOM Adj value for the entire docker container specified by the name. This should point to root proc filesystem func (procs *Procs) AdjustDockerOOMPriority(connection string, containerName string, value int, ignoreIfNonZero bool) error { if docker, err := dockerclient.NewDockerClient(connection, nil); err != nil { return err } else if containers, err := docker.ListContainers(false, false, fmt.Sprintf(`{"name":["^/%s$"]}`, containerName)); err != nil { return err } else if containerInfo, err := docker.InspectContainer(containers[0].Id); err != nil { return err } else if err := procs.AdjustOOMPriority(containerInfo.State.Pid, value, ignoreIfNonZero); err != nil { return err } else { return nil } }
func main() { docker, err := dockerclient.NewDockerClient(os.Getenv("DOCKER_HOST"), nil) if err != nil { log.Fatal(err) } containerConfig := &dockerclient.ContainerConfig{Image: "busybox", Cmd: []string{"sh"}} containerId, err := docker.CreateContainer(containerConfig, "", nil) if err != nil { log.Fatal(err) } // Start the container err = docker.StartContainer(containerId, nil) if err != nil { log.Fatal(err) } docker.StartMonitorStats(containerId, statCallback, nil) waitForInterrupt() }