From f9c45094abaacfe25d360f517420fac9214b2ea4 Mon Sep 17 00:00:00 2001 From: Victor Marmol Date: Thu, 4 Sep 2014 21:24:21 -0700 Subject: [PATCH] Only register the Docker driver in systems using libcontainer. --- container/docker/factory.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/container/docker/factory.go b/container/docker/factory.go index bef4abe7..6b7271e6 100644 --- a/container/docker/factory.go +++ b/container/docker/factory.go @@ -132,6 +132,23 @@ func Register(factory info.MachineInfoFactory) error { } } } + + // Check that the libcontainer execdriver is used. + information, err := client.Info() + if err != nil { + return fmt.Errorf("failed to detect Docker info: %v", err) + } + usesNativeDriver := false + for _, val := range *information { + if strings.Contains(val, "ExecutionDriver=") && strings.Contains(val, "native") { + usesNativeDriver = true + break + } + } + if !usesNativeDriver { + return fmt.Errorf("Docker found, but not using native exec driver") + } + f := &dockerFactory{ machineInfoFactory: factory, useSystemd: systemd.UseSystemd(),