mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Properly handle containers which pre-date the resolv.conf update feature
This fixes the container start issue for containers which were started on a daemon prior to the resolv.conf updater PR. The update code will now safely ignore these containers (given they don't have a sha256 hash to compare against) and will not attempt to update the resolv.conf through their lifetime. Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
This commit is contained in:
parent
ef2d6dda0f
commit
30eff2720a
2 changed files with 16 additions and 1 deletions
|
@ -1057,8 +1057,16 @@ func (container *Container) updateResolvConf(updatedResolvConf []byte, newResolv
|
|||
//read the hash from the last time we wrote resolv.conf in the container
|
||||
hashBytes, err := ioutil.ReadFile(resolvHashFile)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
return err
|
||||
}
|
||||
// backwards compat: if no hash file exists, this container pre-existed from
|
||||
// a Docker daemon that didn't contain this update feature. Given we can't know
|
||||
// if the user has modified the resolv.conf since container start time, safer
|
||||
// to just never update the container's resolv.conf during it's lifetime which
|
||||
// we can control by setting hashBytes to an empty string
|
||||
hashBytes = []byte("")
|
||||
}
|
||||
|
||||
//if the user has not modified the resolv.conf of the container since we wrote it last
|
||||
//we will replace it with the updated resolv.conf from the host
|
||||
|
|
|
@ -201,6 +201,13 @@ If the options (`--dns` or `--dns-search`) have been used to modify the
|
|||
default host configuration, then the replacement with an updated host's
|
||||
`/etc/resolv.conf` will not happen as well.
|
||||
|
||||
> **Note**:
|
||||
> For containers which were created prior to the implementation of
|
||||
> the `/etc/resolv.conf` update feature in Docker 1.5.0: those
|
||||
> containers will **not** receive updates when the host `resolv.conf`
|
||||
> file changes. Only containers created with Docker 1.5.0 and above
|
||||
> will utilize this auto-update feature.
|
||||
|
||||
## Communication between containers and the wider world
|
||||
|
||||
<a name="the-world"></a>
|
||||
|
|
Loading…
Add table
Reference in a new issue