如何让docker 在run一个容器之前,从dockerhub上获取最新的镜像


架构是mesos+marathon+zookeeper+docker,内部dockerhub,
现在遇到点问题,通过marathon的RESTAPI接口,管理所有容器,mesos-slave在启动一个新的container时,先检查本地是否有镜像,如果有,就起本地的镜像,如果没有就从dockerhub上pull,我们的镜像有版本号,比如1.1.1 ,有时开发改了一点点代码,但是不会修改版本号,这样虽然都是叫1.1.1,但是实际dockerhub上的与mesos-slaves上的版本并不相同,但是根据docker的启动顺序来看,mesos-slave检测到本地的镜像版本,与dockerhub的相同,就不会pull新的镜像,只能手动删除mesos-slave的镜像,重新pull,有没有什么方法可以让mesos-slave能知道它本地的镜像不是最新的,然后去pull?换句话说,能不能修改docker的逻辑,让他在run容器之前,先删除本地的镜像,再去pull?或者能不能通过marathon的API接口,删除mesos-slave上的镜像?
已邀请:

tifayuki - Tutum 工程师

赞同来自: oilbeater


不用删除旧的镜像,每次创建容器都做 docker pull xxx && docker run

cxshun - java web软件工程师

赞同来自:


可以自己写一个脚本,每次先docker rmi,然后再docker pull 下来就OK了。

ɡōōd洋

赞同来自:


我们全是通过marathon的RETAPI接口执行的,不用命令,所以这个脚本,不太靠谱,况且我们也不知道容器究竟在哪个mesos-slave上,全部都先删除,在pull,太粗暴了,也不太实际

metavige_tw

赞同来自:


我覺得,養成好習慣,每次有變更時,就改變版本號
是最根本的解決方法

就算再細微的改變也是一樣

要回复问题请先登录注册