diff --git a/daemon/daemon.go b/daemon/daemon.go index a2e6a79bd6..1b7f0e5bb5 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -151,12 +151,22 @@ func (daemon *Daemon) Install(eng *engine.Engine) error { // Get looks for a container by the specified ID or name, and returns it. // If the container is not found, or if an error occurs, nil is returned. func (daemon *Daemon) Get(name string) *Container { - if id, err := daemon.idIndex.Get(name); err == nil { + var ( + id string + err error + ) + + if id, err = daemon.idIndex.Get(name); err == nil { return daemon.containers.Get(id) } + if c, _ := daemon.GetByName(name); c != nil { return c } + + if err == truncindex.ErrDuplicateID { + log.Errorf("Short ID %s is ambiguous: please retry with more characters or use the full ID.\n", name) + } return nil } diff --git a/pkg/truncindex/truncindex.go b/pkg/truncindex/truncindex.go index c5b71752b5..eec5597306 100644 --- a/pkg/truncindex/truncindex.go +++ b/pkg/truncindex/truncindex.go @@ -11,8 +11,9 @@ import ( var ( // ErrNoID is thrown when attempting to use empty prefixes - ErrNoID = errors.New("prefix can't be empty") - errDuplicateID = errors.New("multiple IDs were found") + ErrNoID = errors.New("prefix can't be empty") + // ErrDuplicateID is thrown when a duplicated id was found + ErrDuplicateID = errors.New("multiple IDs were found") ) func init() { @@ -98,7 +99,7 @@ func (idx *TruncIndex) Get(s string) (string, error) { if id != "" { // we haven't found the ID if there are two or more IDs id = "" - return errDuplicateID + return ErrDuplicateID } id = string(prefix) return nil