func validateDockerInfo() (string, string) { client, err := docker.Client() if err == nil { info, err := client.Info() if err == nil { execDriver := info.Get("ExecutionDriver") storageDriver := info.Get("Driver") desc := fmt.Sprintf("Docker exec driver is %s. Storage driver is %s.\n", execDriver, storageDriver) if docker.UseSystemd() { desc += "\tsystemd is being used to create cgroups.\n" } else { desc += "\tCgroups are being created through cgroup filesystem.\n" } if strings.Contains(execDriver, "native") { stateFile := docker.DockerStateDir() if !utils.FileExists(stateFile) { desc += fmt.Sprintf("\tDocker container state directory %q is not accessible.\n", stateFile) return Unsupported, desc } desc += fmt.Sprintf("\tDocker container state directory is at %q and is accessible.\n", stateFile) return Recommended, desc } else if strings.Contains(execDriver, "lxc") { return Supported, desc } return Unknown, desc } } return Unknown, "Docker remote API not reachable\n\t" }
func getDockerVersion() string { docker_version := "Unknown" client, err := docker.Client() if err == nil { version, err := client.Version() if err == nil { docker_version = version.Get("Version") } } return docker_version }