mirror of
https://github.com/docker/cli.git
synced 2026-01-13 18:22:35 +03:00
Fix run docker rename <container-id> new_name concurrently, the container will have multi names
When run `docker rename <container-id> new_name` concurrently, every operation will release container's old name. So container will have multi new names reserve in nameIndex. Signed-off-by: Yang Pengfei <yangpengfei4@huawei.com> Upstream-commit: cc2340689c431504689d01c9516b3a340b2e8dbc Component: engine
This commit is contained in:
@@ -32,6 +32,9 @@ func (daemon *Daemon) ContainerRename(oldName, newName string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
container.Lock()
|
||||
defer container.Unlock()
|
||||
|
||||
oldName = container.Name
|
||||
oldIsAnonymousEndpoint := container.NetworkSettings.IsAnonymousEndpoint
|
||||
|
||||
@@ -39,9 +42,6 @@ func (daemon *Daemon) ContainerRename(oldName, newName string) error {
|
||||
return errors.New("Renaming a container with the same name as its current name")
|
||||
}
|
||||
|
||||
container.Lock()
|
||||
defer container.Unlock()
|
||||
|
||||
links := map[string]*dockercontainer.Container{}
|
||||
for k, v := range daemon.linkIndex.children(container) {
|
||||
if !strings.HasPrefix(k, oldName) {
|
||||
|
||||
Reference in New Issue
Block a user