浏览代码

Merge pull request #23011 from coolljt0725/fix_link

Fix link doesn't work sometimes when container start with multiple networks
Alexander Morozov 9 年之前
父节点
当前提交
1bbac428de
共有 1 个文件被更改,包括 14 次插入0 次删除
  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
 		}