diff --git a/daemon/container_unix.go b/daemon/container_unix.go index 3af7800894..3df5be4d84 100644 --- a/daemon/container_unix.go +++ b/daemon/container_unix.go @@ -913,6 +913,13 @@ func (container *Container) allocateNetwork() error { if mode.IsDefault() { networkName = controller.Config().Daemon.DefaultNetwork } + if mode.IsUserDefined() { + n, err := container.daemon.FindNetwork(networkName) + if err != nil { + return err + } + networkName = n.Name() + } container.NetworkSettings.Networks = make(map[string]*network.EndpointSettings) container.NetworkSettings.Networks[networkName] = new(network.EndpointSettings) updateSettings = true @@ -953,9 +960,7 @@ func (container *Container) ConnectToNetwork(idOrName string) error { return nil } -func (container *Container) connectToNetwork(idOrName string, updateSettings bool) error { - var err error - +func (container *Container) connectToNetwork(idOrName string, updateSettings bool) (err error) { if container.hostConfig.NetworkMode.IsContainer() { return runconfig.ErrConflictSharedNetwork } diff --git a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go index 3e92891657..221b8dcd7f 100644 --- a/integration-cli/docker_cli_network_unix_test.go +++ b/integration-cli/docker_cli_network_unix_test.go @@ -733,3 +733,8 @@ func (s *DockerNetworkSuite) TestDockerNetworkMultipleNetworksUngracefulDaemonRe verifyContainerIsConnectedToNetworks(c, s.d, cName, nwList) } + +func (s *DockerNetworkSuite) TestDockerNetworkRunNetByID(c *check.C) { + out, _ := dockerCmd(c, "network", "create", "one") + dockerCmd(c, "run", "-d", "--net", strings.TrimSpace(out), "busybox", "top") +}