Hi Ryan,

You can tag each image with your commit hash that way Mesos will always
have to do a docker pull and you don't lose the fast iteration cycle in
development.

Steve

On Friday, September 5, 2014, craig mcmillan <[email protected]>
wrote:

> hey ryan,
>
> there are two deployment use-cases i generally have :
>
> - production : i want to consider carefully what i deploy, and refer to
>                a specific image. a versioned tag works well here
>
> - development : i want to iterate quickly and something like a branch
>                 (movable tag) works really well here, à la heroku :
>                 git-push => commit-hook => build docker-image =>
> curl-to-marathon
>
> it's the development use-case that pull on every launch supports best
>
> would an option in the ContainerInfo to pull on every launch be reasonable
> ?
>
> i'm happy to do a PR if that would be helpful !
>
> :craig
>
> On 5 Sep 2014, at 9:07, Ryan Thomas wrote:
>
>  Whilst this is somewhat unrelated to the mesos implementation, I think it
>> is generally good practice to have immutable tags on the images, this is
>> something I dislike about docker :)
>>
>> Whist the gc of old images will eventually become a problem, it will
>> really
>> only be the layer delta that is consumed with each new tag. But I think
>> yes, there would need to be some mechanism to clear out the images in the
>> local registry.
>>
>> ryan
>> On 5 Sep 2014 18:03, "mccraig mccraig" <[email protected]> wrote:
>>
>>  ah, so i will have to use a different tag to update an app
>>>
>>> one immediate problem i can see is that it makes garbage collecting old
>>> docker images from slaves harder : currently i update the image
>>> associated
>>> with a tag and restart tasks to update the running app, then
>>> occasionally a
>>> cron job to remove all docker images with no tag
>>>
>>> if every updated image has a new tag it will be harder to figure out
>>> which
>>> images to remove... perhaps any with no running container, though that
>>> could lead to unnecessary pulls and slower restarts of failed tasks
>>>
>>> :craig
>>>
>>> On 5 Sep 2014, at 08:43, Ryan Thomas <[email protected]> wrote:
>>>
>>> Hey Craig,
>>>
>>> docker run will attempt a pull of the image if it cannot find a matching
>>> image and tag in its local repository.
>>>
>>> So it should only pull on the first run of a given tag.
>>>
>>> ryan
>>> On 5 Sep 2014 17:41, "mccraig mccraig" <[email protected]> wrote:
>>>
>>>  hi tim,
>>>>
>>>> if it doesn't pull on every run, when will it pull ?
>>>>
>>>> :craig
>>>>
>>>> On 5 Sep 2014, at 07:05, Tim Chen <[email protected]> wrote:
>>>>
>>>> Hi Maxime,
>>>>
>>>> It is a very valid concern and that's why I've added a patch that should
>>>> go out in 0.20.1 to not do a docker pull on every run anymore.
>>>>
>>>> Mesos will still try to docker pull when the image isn't available
>>>> locally (via docker inspect), but only once.
>>>>
>>>> The downside ofcourse is that you're not able to automatically get the
>>>> latest tagged image, but I think it's worth while price to may to gain
>>>> the
>>>> benefits of not depending on registry, able to run local images and
>>>> more.
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Thu, Sep 4, 2014 at 10:50 PM, Maxime Brugidou <
>>>> [email protected]> wrote:
>>>>
>>>>  Hi,
>>>>>
>>>>> The current Docker integration in 0.20 does a "docker pull" from the
>>>>> registry before running any task. This means that your entire Mesos
>>>>> cluster
>>>>> becomes unusable if the registry goes down.
>>>>>
>>>>> The docs allow you to configure a custom .dockercfg for your tasks to
>>>>> point to a private docker registry.
>>>>>
>>>>> However it is not easy to run an HA docker registry. The
>>>>> docker-registry
>>>>> project recommend using S3 storage buy this is definitely not an
>>>>> option for
>>>>> some people.
>>>>>
>>>>> I know that for regular artifacts, Mesos can use HDFS storage and you
>>>>> can run your HDFS datanodes as Mesos tasks.
>>>>>
>>>>> So even if I attempt to have a docker registry storage in HDFS (which
>>>>> is
>>>>> not supported by docker-registry at the moment), I am stuck on a
>>>>> chicken
>>>>> and egg problem. I want to have as little services outside of Mesos as
>>>>> possible and it is hard to maintain HA services (especially outside of
>>>>> Mesos).
>>>>>
>>>>> Is there anyone running Mesos with Docker in production without S3? I
>>>>> am
>>>>> trying to make all the services outside of Mesos (the "infra" services
>>>>> that
>>>>> are necessary to run Mesos like DNS, Haproxy, Chef server... etc)
>>>>> either HA
>>>>> or not critical for the cluster to run. The docker registry is a new
>>>>> piece
>>>>> of infra outside of Mesos that is critical...
>>>>>
>>>>> Best,
>>>>> Maxime
>>>>>
>>>>>
>>>>
>>>>

Reply via email to