From 61993ec6c2ca0c5adfdb2d13f5527f82f4fc1a27 Mon Sep 17 00:00:00 2001 From: Jana Radhakrishnan Date: Thu, 28 May 2015 20:01:00 +0000 Subject: [PATCH] Modprobe bridge driver r specific kernel modules Try too modprobe bridge driverer specic modulein case they are not loaded into the kernel. Signed-off-by: Jana Radhakrishnan --- libnetwork/drivers/bridge/bridge.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libnetwork/drivers/bridge/bridge.go b/libnetwork/drivers/bridge/bridge.go index ceff412549..c26da23677 100644 --- a/libnetwork/drivers/bridge/bridge.go +++ b/libnetwork/drivers/bridge/bridge.go @@ -3,10 +3,12 @@ package bridge import ( "errors" "net" + "os/exec" "strconv" "strings" "sync" + "github.com/Sirupsen/logrus" "github.com/docker/libnetwork/driverapi" "github.com/docker/libnetwork/ipallocator" "github.com/docker/libnetwork/netlabel" @@ -104,6 +106,12 @@ func newDriver() driverapi.Driver { // Init registers a new instance of bridge driver func Init(dc driverapi.DriverCallback) error { + // try to modprobe bridge first + // see gh#12177 + if out, err := exec.Command("modprobe", "-va", "bridge", "nf_nat", "br_netfilter").Output(); err != nil { + logrus.Warnf("Running modprobe bridge nf_nat failed with message: %s, error: %v", out, err) + } + return dc.RegisterDriver(networkType, newDriver()) }