5

我有Dockerfile以下内容:

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

当我执行 adocker-compose up -d时,Docker 会拉取图像并执行这些步骤。

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

4

2 回答 2

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
于 2015-03-07T19:36:47.183 回答
5

Docker Compose 版本 1.5.0rc1 现在可以使用docker-compose build --pull.

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

拉取新映像后,您可以使用docker-compose build. 如果图像已更改,缓存应该完全失效,因为步骤 0 的 FROM 哈希已更改。

于 2015-08-19T14:39:59.960 回答