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)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "Could not find entity") {
|
||||
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 "", err
|
||||
}
|
||||
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
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue