mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
replace 127.0.0.1 by the assigned IP address in the container's /etc/hosts file.
This commit is contained in:
parent
2d425af1b1
commit
7d95d300ab
2 changed files with 29 additions and 26 deletions
28
container.go
28
container.go
|
@ -579,10 +579,12 @@ func (container *Container) Start(hostConfig *HostConfig) error {
|
||||||
}
|
}
|
||||||
if container.runtime.networkManager.disabled {
|
if container.runtime.networkManager.disabled {
|
||||||
container.Config.NetworkDisabled = true
|
container.Config.NetworkDisabled = true
|
||||||
|
container.buildHostnameAndHostsFiles("127.0.0.1")
|
||||||
} else {
|
} else {
|
||||||
if err := container.allocateNetwork(); err != nil {
|
if err := container.allocateNetwork(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
container.buildHostnameAndHostsFiles(container.NetworkSettings.IPAddress)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the config is compatible with the current kernel
|
// Make sure the config is compatible with the current kernel
|
||||||
|
@ -868,6 +870,32 @@ func (container *Container) StderrPipe() (io.ReadCloser, error) {
|
||||||
return utils.NewBufReader(reader), nil
|
return utils.NewBufReader(reader), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (container *Container) buildHostnameAndHostsFiles(IP string) {
|
||||||
|
container.HostnamePath = path.Join(container.root, "hostname")
|
||||||
|
ioutil.WriteFile(container.HostnamePath, []byte(container.Config.Hostname+"\n"), 0644)
|
||||||
|
|
||||||
|
hostsContent := []byte(`
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
ff00::0 ip6-mcastprefix
|
||||||
|
ff02::1 ip6-allnodes
|
||||||
|
ff02::2 ip6-allrouters
|
||||||
|
`)
|
||||||
|
|
||||||
|
container.HostsPath = path.Join(container.root, "hosts")
|
||||||
|
|
||||||
|
if container.Config.Domainname != "" {
|
||||||
|
hostsContent = append([]byte(fmt.Sprintf("::1\t\t%s.%s %s\n", container.Config.Hostname, container.Config.Domainname, container.Config.Hostname)), hostsContent...)
|
||||||
|
hostsContent = append([]byte(fmt.Sprintf("%s\t%s.%s %s\n", IP, container.Config.Hostname, container.Config.Domainname, container.Config.Hostname)), hostsContent...)
|
||||||
|
} else {
|
||||||
|
hostsContent = append([]byte(fmt.Sprintf("::1\t\t%s\n", container.Config.Hostname)), hostsContent...)
|
||||||
|
hostsContent = append([]byte(fmt.Sprintf("%s\t%s\n", IP, container.Config.Hostname)), hostsContent...)
|
||||||
|
}
|
||||||
|
|
||||||
|
ioutil.WriteFile(container.HostsPath, hostsContent, 0644)
|
||||||
|
}
|
||||||
|
|
||||||
func (container *Container) allocateNetwork() error {
|
func (container *Container) allocateNetwork() error {
|
||||||
if container.Config.NetworkDisabled {
|
if container.Config.NetworkDisabled {
|
||||||
return nil
|
return nil
|
||||||
|
|
27
runtime.go
27
runtime.go
|
@ -368,32 +368,7 @@ func (runtime *Runtime) Create(config *Config) (*Container, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 3: if hostname, build hostname and hosts files
|
// Step 3: register the container
|
||||||
container.HostnamePath = path.Join(container.root, "hostname")
|
|
||||||
ioutil.WriteFile(container.HostnamePath, []byte(container.Config.Hostname+"\n"), 0644)
|
|
||||||
|
|
||||||
hostsContent := []byte(`
|
|
||||||
127.0.0.1 localhost
|
|
||||||
::1 localhost ip6-localhost ip6-loopback
|
|
||||||
fe00::0 ip6-localnet
|
|
||||||
ff00::0 ip6-mcastprefix
|
|
||||||
ff02::1 ip6-allnodes
|
|
||||||
ff02::2 ip6-allrouters
|
|
||||||
`)
|
|
||||||
|
|
||||||
container.HostsPath = path.Join(container.root, "hosts")
|
|
||||||
|
|
||||||
if container.Config.Domainname != "" {
|
|
||||||
hostsContent = append([]byte(fmt.Sprintf("::1\t\t%s.%s %s\n", container.Config.Hostname, container.Config.Domainname, container.Config.Hostname)), hostsContent...)
|
|
||||||
hostsContent = append([]byte(fmt.Sprintf("127.0.0.1\t%s.%s %s\n", container.Config.Hostname, container.Config.Domainname, container.Config.Hostname)), hostsContent...)
|
|
||||||
} else {
|
|
||||||
hostsContent = append([]byte(fmt.Sprintf("::1\t\t%s\n", container.Config.Hostname)), hostsContent...)
|
|
||||||
hostsContent = append([]byte(fmt.Sprintf("127.0.0.1\t%s\n", container.Config.Hostname)), hostsContent...)
|
|
||||||
}
|
|
||||||
|
|
||||||
ioutil.WriteFile(container.HostsPath, hostsContent, 0644)
|
|
||||||
|
|
||||||
// Step 4: register the container
|
|
||||||
if err := runtime.Register(container); err != nil {
|
if err := runtime.Register(container); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue