我是Docker的新手。基于阅读一些Docker文档,我计划将我的项目转换为Docker镜像,如下所示:
我的项目具有以下特性:
因此我打算创建4张图片:
我的理解是,image4有4层。一旦我构建了一个新的image4,Docker只需要拉取layer4,因为1,2,3层与旧的image4相同。由于我的项目代码只是一些文本脚本,因此layer4应该非常小,因此拉新的image4应该非常快。
我的理解是否正确?
答案 0 :(得分:1)
由于我的项目代码只是一些文本脚本,因此layer4应该非常小
Layer4会很小,但只有在之前已经将图像1拉到3之后,拉动image4才会很快。
结果image4不小,但是3个基本图像串联的结果。
另外,术语"层"不应掩盖docker文件中的每一行都会创建一个中间图像这一事实,使实际图像成为所有这些中间小图层的集合(由每个Dockerfile命令的执行产生)。
你可能有4" general"图层,但实际图像可能超过4层
您可以使用imagelayers.io
我使用alias to cleanup old dangling images:
alias drmiad='docker rmi $(docker images --filter "dangling=true" -q --no-trunc)'
我的build script通常包括:
. ../.bash_aliases
docker build -t sshd . || exit 1
drmiad 2> /dev/null