我有一个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并重新开始。
答案 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散列已经改变。