Merge pull request #11492 from coolljt0725/fix_hostname_missing_in_container_netmode

Fix hostname missing when a container's net mode is contaienr mode
This commit is contained in:
Michael Crosby 2015-03-20 16:49:37 -07:00
commit 84d3ab30d4
2 changed files with 26 additions and 0 deletions

View File

@ -1223,6 +1223,7 @@ func (container *Container) initializeNetworking() error {
if err != nil {
return err
}
container.HostnamePath = nc.HostnamePath
container.HostsPath = nc.HostsPath
container.ResolvConfPath = nc.ResolvConfPath
container.Config.Hostname = nc.Config.Hostname

View File

@ -412,6 +412,31 @@ func TestRunLinkToContainerNetMode(t *testing.T) {
logDone("run - link to a container which net mode is container success")
}
func TestRunModeNetContainerHostname(t *testing.T) {
defer deleteAllContainers()
cmd := exec.Command(dockerBinary, "run", "-i", "-d", "--name", "parent", "busybox", "top")
out, _, err := runCommandWithOutput(cmd)
if err != nil {
t.Fatalf("failed to run container: %v, output: %q", err, out)
}
cmd = exec.Command(dockerBinary, "exec", "parent", "cat", "/etc/hostname")
out, _, err = runCommandWithOutput(cmd)
if err != nil {
t.Fatalf("failed to exec command: %v, output: %q", err, out)
}
cmd = exec.Command(dockerBinary, "run", "--net=container:parent", "busybox", "cat", "/etc/hostname")
out1, _, err := runCommandWithOutput(cmd)
if err != nil {
t.Fatalf("failed to run container: %v, output: %q", err, out1)
}
if out1 != out {
t.Fatal("containers with shared net namespace should have same hostname")
}
logDone("run - containers with shared net namespace have same hostname")
}
// Regression test for #4741
func TestRunWithVolumesAsFiles(t *testing.T) {
defer deleteAllContainers()