1
0
Fork 0
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:
Tonis Tiigi 2015-10-26 16:57:50 -07:00
parent 80439a4ce2
commit aee5486374

View file

@ -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
} }