我已成功在Windows机器上运行docker。当我尝试docker build .
图像时,docker会在步骤1中下载大量大图像文件。我对此没有任何问题。但是,我最后一次尝试时,除了一个图像文件以外的所有图像文件都要下载时,我意外中断了。
当我再次构建时,所有下载都重新开始,这种情况一再发生。我的问题是,docker不会在某处缓存已经下载的文件,还是没有办法避免这种重复下载?
这是我的Dockerfile
# Dockerfile
FROM ingensi/play-framework
COPY activator.sh /activator.sh
EXPOSE 8000
RUN mkdir /app
WORKDIR /app
CMD ["activator","run"]
这是运行docker build .
Sending build context to Docker daemon 7.543 MB
Step 1 : FROM ingensi/play-framework
latest: Pulling from ingensi/play-framework
a3ed95caeb02: Pull complete
6b8936f53711: Downloading 10.77 MB/77.28 MB
ba9b63c22e85: Downloading 8.222 MB/18.17 MB
c8f760722057: Download complete
05c3b10b9cd9: Waiting
eea97537ef12: Waiting
40254e2b433f: Waiting
66be6357e6af: Waiting
ca0f372c20c8: Waiting
1f9b623e6354: Waiting
正在下载的图像文件始终相同,并按照左侧代码和文件大小的相同顺序显示。
答案 0 :(得分:1)
目前还不清楚Dockerfile的哪个部分会导致文件下载。请注意,Docker将缓存图像层,而不是下载到创建图层的文件。有关如何利用这些内容的详细信息,请访问:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#/build-cache
答案 1 :(得分:0)
当我再次构建时,所有下载都重新开始,这种情况一次又一次地发生。
我的问题是,docker不会在某处缓存已下载的文件吗?
是的,图像存储在缓存文件夹中 请参阅" Where are docker images stored on the host machine?"
在您的情况下,您可以使用需要Microsoft Hyper-V运行的Docker for Windows 有缓存问题,但only for Docker cloud,而不是本地。
我在评论中建议:
docker-machine ssh
cd /C/Users/<yourLogin>/path/to/your/project
docker build