[
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)