You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Jay Guo (JIRA)" <ji...@apache.org> on 2016/07/01 07:00:19 UTC

[jira] [Comment Edited] (MESOS-3505) Support specifying Docker image by Image ID.

    [ https://issues.apache.org/jira/browse/MESOS-3505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15358516#comment-15358516 ] 

Jay Guo edited comment on MESOS-3505 at 7/1/16 6:59 AM:
--------------------------------------------------------

Just wanna make sure I understand the problem correctly. So one should be able to do following:
1. Specify digest in image name as {{debian@sha256:abcdef}} in {{ContainerInfo.MesosInfo.Image.Docker.name}}, 
2. Provisioner parses this information to ImageReference, which should recognise {{digest}} (which is available in protobuf message but not used at this moment)
3. If {{cached}} is set to _true_, *metadata_manager* should check if the image with specified digest exists in store. If not, it pulls from docker registry v2 using the digest, e.g. {{debian@sha256:abcdef}}
4. If pull fails due to any reason, the process should fail and error should be returned to user.

One question is that do we assume digest is supported if users pull from a private registry?

cc [~jieyu]


was (Author: guoger):
Just wanna make sure I understand the problem correctly. So one should be able to do following:
1. Specify digest in image name as {{debian@sha256:abcdef}} in {{ContainerInfo.MesosInfo.Image.Docker.name}}, 
2. Provisioner parses this information to ImageReference, which should recognise {{digest}} (which is available in protobuf message but not used at this moment)
3. If {{cached}} is set to _true_, *metadata_manager* should check if the image with specified digest exists in store. If not, it pulls from docker registry v2 using the digest, e.g. {{debian@sha256:abcdef}}
4. If pull fails due to any reason, the process should fail and error should be returned to user.

One question is that do we assume digest is supported if users pull from a private registry?

> Support specifying Docker image by Image ID.
> --------------------------------------------
>
>                 Key: MESOS-3505
>                 URL: https://issues.apache.org/jira/browse/MESOS-3505
>             Project: Mesos
>          Issue Type: Story
>            Reporter: Yan Xu
>            Assignee: Jay Guo
>              Labels: mesosphere
>
> A common way to specify a Docker image with the docker engine is through {{repo:tag}}, which is convenient and sufficient for most people in most scenarios. However this combination is neither precise nor immutable.
> For this reason, it's possible when an image with a {{repo:tag}} already cached locally on an agent host and a task requiring this {{repo:tag}} arrives, it's using an image that's different than the one the user intended.
> Docker CLI already supports referring to an image by {{repo@id}}, where the ID can have two forms:
> * v1 Image ID
> * digest
> Native Mesos provisioner should support the same for Docker images. IMO it's fine if image discovery by ID is not supported (and thus still requiring {{repo:tag}} to be specified) (looks like [v2 registry|http://docs.docker.com/registry/spec/api/] does support it) but the user can optionally specify an image ID and match it against the cached / newly pulled image. If the ID doesn't match the cached image, the store can re-pull it; if the ID doesn't match the newly pulled image (manifest), the provisioner can fail the request without having the user unknowingly running its task on the wrong image.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)