Sfoglia il codice sorgente

Merge pull request #42785 from sanchayanghosh/42753-fix-host.internal

Fixed docker.internal.gateway not displaying properly on live restore
Akihiro Suda 3 anni fa
parent
commit
40ccedd61b
1 ha cambiato i file con 19 aggiunte e 11 eliminazioni
  1. 19 11
      daemon/daemon_unix.go

+ 19 - 11
daemon/daemon_unix.go

@@ -869,6 +869,7 @@ func (daemon *Daemon) initNetworkController(config *config.Config, activeSandbox
 
 	if len(activeSandboxes) > 0 {
 		logrus.Info("There are old running containers, the network config will not take affect")
+		setHostGatewayIP(daemon.configStore, controller)
 		return controller, nil
 	}
 
@@ -906,19 +907,26 @@ func (daemon *Daemon) initNetworkController(config *config.Config, activeSandbox
 	}
 
 	// Set HostGatewayIP to the default bridge's IP  if it is empty
-	if daemon.configStore.HostGatewayIP == nil && controller != nil {
-		if n, err := controller.NetworkByName("bridge"); err == nil {
-			v4Info, v6Info := n.Info().IpamInfo()
-			var gateway net.IP
-			if len(v4Info) > 0 {
-				gateway = v4Info[0].Gateway.IP
-			} else if len(v6Info) > 0 {
-				gateway = v6Info[0].Gateway.IP
-			}
-			daemon.configStore.HostGatewayIP = gateway
+	setHostGatewayIP(daemon.configStore, controller)
+
+	return controller, nil
+}
+
+// setHostGatewayIP sets cfg.HostGatewayIP to the default bridge's IP if it is empty.
+func setHostGatewayIP(config *config.Config, controller libnetwork.NetworkController) {
+	if config.HostGatewayIP != nil {
+		return
+	}
+	if n, err := controller.NetworkByName("bridge"); err == nil {
+		v4Info, v6Info := n.Info().IpamInfo()
+		var gateway net.IP
+		if len(v4Info) > 0 {
+			gateway = v4Info[0].Gateway.IP
+		} else if len(v6Info) > 0 {
+			gateway = v6Info[0].Gateway.IP
 		}
+		config.HostGatewayIP = gateway
 	}
-	return controller, nil
 }
 
 func driverOptions(config *config.Config) nwconfig.Option {