“Docker-compose up”不会每次都拉取图像,它会重新创build一个拉出的图像

我有一个Dockerfile与以下内容:

 FROM <docker-registry>/<image>:latest COPY mv setup /root/ RUN setup 

当我执行docker-compose up -d ,Docker拉取图像并执行步骤。

当我执行docker-compose stop并将其重新启动时,docker-compose dos不会再次拖动最新的映像。 这对我来说是一个问题,因为我需要一个新的图像下载。 我这样做的唯一方法是炸毁boot2docker虚拟机并重新开始。

您应该使用docker-compose pull命令来拉取远程图像,使用docker-compose build命令构build本地图像,然后使用docker-compose up -d重新创build容器。

 $ cd /path/to/folder $ cat docker-compose.yml myapp: build: . links: - redis redis: image: redis # pull lastest image $ docker-compose pull redis # build your image $ docker-compose build myapp # recreate containers $ docker-compose up -d 

Docker Compose版本1.5.0rc1现在可以通过使用docker-compose build --pull来获取在构buildDockerfiles时引用的最新映像。

在1.5.0rc1之前,docker docker-compose无法强制Dockerfile服务获取最新的映像。 我不得不使用docker pull <image>

一旦新的图像已经被拉出,那么你可以重builddocker-compose build 。 caching应该完全无效,因为步骤0的FROM散列已经改变,如果图像已经改变。