mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix duplicate container names conflict
While creating multiple containers the second container could remove the first one from graph and not produce an error. Fixes #15995 Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
parent
80439a4ce2
commit
aee5486374
1 changed files with 5 additions and 13 deletions
|
@ -407,20 +407,12 @@ func (daemon *Daemon) reserveName(id, name string) (string, error) {
|
||||||
|
|
||||||
conflictingContainer, err := daemon.GetByName(name)
|
conflictingContainer, err := daemon.GetByName(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.Contains(err.Error(), "Could not find entity") {
|
return "", err
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove name and continue starting the container
|
|
||||||
if err := daemon.containerGraphDB.Delete(name); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
nameAsKnownByUser := strings.TrimPrefix(name, "/")
|
|
||||||
return "", fmt.Errorf(
|
|
||||||
"Conflict. The name %q is already in use by container %s. You have to remove (or rename) that container to be able to reuse that name.", nameAsKnownByUser,
|
|
||||||
stringid.TruncateID(conflictingContainer.ID))
|
|
||||||
}
|
}
|
||||||
|
return "", fmt.Errorf(
|
||||||
|
"Conflict. The name %q is already in use by container %s. You have to remove (or rename) that container to be able to reuse that name.", strings.TrimPrefix(name, "/"),
|
||||||
|
stringid.TruncateID(conflictingContainer.ID))
|
||||||
|
|
||||||
}
|
}
|
||||||
return name, nil
|
return name, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue