diff options
| author | Tonis Tiigi <tonistiigi@gmail.com> | 2016-03-07 10:56:24 -0800 |
|---|---|---|
| committer | Tonis Tiigi <tonistiigi@gmail.com> | 2016-03-11 10:02:47 -0800 |
| commit | 16e4c4e481aca8d5a99d5a4760b5d27bf5bbb9fd (patch) | |
| tree | 7735b3e8bd8add84e54a4aa18c0f456597916555 /api/client | |
| parent | bc730f3d997ee4b2d53f7362c1d9f40f4074584a (diff) | |
| download | docker-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.go | 23 |
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 |
