1
0
mirror of https://github.com/docker/cli.git synced 2026-01-19 21:41:31 +03:00

Merge pull request #9567 from jfrazelle/8333-net-link-error

Throw error when container links to --net host container
Upstream-commit: 0d941969998baa42eab8ce05da7ee8b9d9885dc8
Component: engine
This commit is contained in:
Alexander Morozov
2014-12-08 14:36:44 -08:00
2 changed files with 19 additions and 0 deletions

View File

@@ -696,6 +696,9 @@ func (daemon *Daemon) RegisterLinks(container *Container, hostConfig *runconfig.
if child == nil {
return fmt.Errorf("Could not get container for %s", parts["name"])
}
if child.hostConfig.NetworkMode.IsHost() {
return runconfig.ErrConflictHostNetworkAndLinks
}
if err := daemon.RegisterLink(container, child, parts["alias"]); err != nil {
return err
}

View File

@@ -215,3 +215,19 @@ func TestLinksHostsFilesInject(t *testing.T) {
logDone("link - ensure containers hosts files are updated with the link alias.")
}
func TestLinksNetworkHostContainer(t *testing.T) {
defer deleteAllContainers()
out, _, err := runCommandWithOutput(exec.Command(dockerBinary, "run", "-d", "--net", "host", "--name", "host_container", "busybox", "top"))
if err != nil {
t.Fatal(err, out)
}
out, _, err = runCommandWithOutput(exec.Command(dockerBinary, "run", "--name", "should_fail", "--link", "host_container:tester", "busybox", "true"))
if err == nil || !strings.Contains(out, "--net=host can't be used with links. This would result in undefined behavior.") {
t.Fatalf("Running container linking to a container with --net host should have failed: %s", out)
}
logDone("link - error thrown when linking to container with --net host")
}