summaryrefslogtreecommitdiff
path: root/api/client
diff options
context:
space:
mode:
authorTonis Tiigi <tonistiigi@gmail.com>2016-03-07 10:56:24 -0800
committerTonis Tiigi <tonistiigi@gmail.com>2016-03-11 10:02:47 -0800
commit16e4c4e481aca8d5a99d5a4760b5d27bf5bbb9fd (patch)
tree7735b3e8bd8add84e54a4aa18c0f456597916555 /api/client
parentbc730f3d997ee4b2d53f7362c1d9f40f4074584a (diff)
downloaddocker-16e4c4e481aca8d5a99d5a4760b5d27bf5bbb9fd.tar.gz
Fix docker run for 64 byte hex ID
Fixes #20972 Also makes sure there is no check to registry if no image is found for the prefixed IDs. Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Diffstat (limited to 'api/client')
-rw-r--r--api/client/create.go23
1 files changed, 12 insertions, 11 deletions
diff --git a/api/client/create.go b/api/client/create.go
index 0c19145463..0f06e8ccab 100644
--- a/api/client/create.go
+++ b/api/client/create.go
@@ -92,21 +92,22 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
defer containerIDFile.Close()
}
- ref, err := reference.ParseNamed(config.Image)
+ var trustedRef reference.Canonical
+ _, ref, err := reference.ParseIDOrReference(config.Image)
if err != nil {
return nil, err
}
- ref = reference.WithDefaultTag(ref)
-
- var trustedRef reference.Canonical
+ if ref != nil {
+ ref = reference.WithDefaultTag(ref)
- if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
- var err error
- trustedRef, err = cli.trustedReference(ref)
- if err != nil {
- return nil, err
+ if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
+ var err error
+ trustedRef, err = cli.trustedReference(ref)
+ if err != nil {
+ return nil, err
+ }
+ config.Image = trustedRef.String()
}
- config.Image = trustedRef.String()
}
//create the container
@@ -114,7 +115,7 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
//if image not found try to pull it
if err != nil {
- if client.IsErrImageNotFound(err) {
+ if client.IsErrImageNotFound(err) && ref != nil {
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", ref.String())
// we don't want to write to stdout anything apart from container.ID