diff --git a/runconfig/parse.go b/runconfig/parse.go index 9f6459b234..1fb36e4ace 100644 --- a/runconfig/parse.go +++ b/runconfig/parse.go @@ -125,7 +125,7 @@ func Parse(cmd *flag.FlagSet, args []string) (*Config, *HostConfig, *flag.FlagSe return nil, nil, cmd, ErrConflictHostNetworkAndLinks } - if *flNetMode == "container" && flLinks.Len() > 0 { + if strings.HasPrefix(*flNetMode, "container") && flLinks.Len() > 0 { return nil, nil, cmd, ErrConflictContainerNetworkAndLinks } @@ -133,7 +133,7 @@ func Parse(cmd *flag.FlagSet, args []string) (*Config, *HostConfig, *flag.FlagSe return nil, nil, cmd, ErrConflictHostNetworkAndDns } - if *flNetMode == "container" && flDns.Len() > 0 { + if strings.HasPrefix(*flNetMode, "container") && flDns.Len() > 0 { return nil, nil, cmd, ErrConflictContainerNetworkAndDns } diff --git a/runconfig/parse_test.go b/runconfig/parse_test.go index cd90dc3a94..6c0a1cfc66 100644 --- a/runconfig/parse_test.go +++ b/runconfig/parse_test.go @@ -57,3 +57,9 @@ func TestNetHostname(t *testing.T) { t.Fatalf("Expected error ErrConflictNetworkHostname, got: %s", err) } } + +func TestConflictContainerNetworkAndLinks(t *testing.T) { + if _, _, _, err := parseRun([]string{"--net=container:other", "--link=zip:zap", "img", "cmd"}); err != ErrConflictContainerNetworkAndLinks { + t.Fatalf("Expected error ErrConflictContainerNetworkAndLinks, got: %s", err) + } +}