" Docker-compose up"每次都不会拉图像,它会重新创建拉出的图像

时间:2015-03-07 19:32:35

标签: docker boot2docker docker-compose

我有一个Dockerfile,内容如下:

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

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

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

2 个答案:

答案 0 :(得分:6)

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

$ 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

答案 1 :(得分:5)

Docker Compose版本1.5.0rc1现在可以使用docker-compose build --pull在构建中提取Dockerfiles中引用的最新图像。

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

拉出新的图像后,您可以使用docker-compose build进行重建。缓存应该完全失效,因为如果图像已经改变,步骤0的FROM散列已经改变。