Explorar el Código

Merge pull request #23011 from coolljt0725/fix_link

Fix link doesn't work sometimes when container start with multiple networks
Alexander Morozov hace 9 años
padre
commit
1bbac428de
Se han modificado 1 ficheros con 14 adiciones y 0 borrados
  1. 14 0
      daemon/container_operations.go

+ 14 - 0
daemon/container_operations.go

@@ -408,7 +408,21 @@ func (daemon *Daemon) allocateNetwork(container *container.Container) error {
 		updateSettings = true
 	}
 
+	// always connect default network first since only default
+	// network mode support link and we need do some setting
+	// on sanbox initialize for link, but the sandbox only be initialized
+	// on first network connecting.
+	defaultNetName := runconfig.DefaultDaemonNetworkMode().NetworkName()
+	if nConf, ok := container.NetworkSettings.Networks[defaultNetName]; ok {
+		if err := daemon.connectToNetwork(container, defaultNetName, nConf, updateSettings); err != nil {
+			return err
+		}
+
+	}
 	for n, nConf := range container.NetworkSettings.Networks {
+		if n == defaultNetName {
+			continue
+		}
 		if err := daemon.connectToNetwork(container, n, nConf, updateSettings); err != nil {
 			return err
 		}