我尝试在主机上创建几个不同的目录,以尝试了解Docker,以使dockerfile井井有条。我刚运行的Dockerfile如下所示:
FROM crystal/centos MAINTAINER crystal ADD ./rpms/test.rpm ./rpms/ RUN yum -y --nogpgcheck localinstall /rpms/test.rpm
我的实际转速仅为1 GB。但是,当我尝试这样做时sudo docker build -t="crystal/test" .,我将向Docker守护进程3.5 GB发送构建上下文。当您继续构建Docker映像时,还有其他我不知道的事情吗?当我在主机上的其他目录中构建更多映像时,是否正在累积内存?
sudo docker build -t="crystal/test" .
Docker客户端将整个“构建上下文”发送到Docker守护程序。该构建上下文(默认情况下)是其中的整个目录Dockerfile(因此是整个rpms树)。
Dockerfile
rpms
您可以设置.dockerignore文件以使Docker忽略某些文件。您可能要尝试一下。
.dockerignore
另外,您也可以将rpms文件夹移动到上一个目录级别Dockerfile,而仅将符号链接移动test.rpm到Dockerfile的目录中。
test.rpm
正如许多用户在评论中指出的那样,一个 文件夹 需要 添加.git到.dockerignore其中,这是我的情况造成150MB-> 5GB差异的原因。
.git