我有一个要转换为图像的 Cassandra.tar.gz 文件。我创建了一个 DockerFile (CassandarImageDockerFile.txt),内容如下
FROM scratch
add apache-cassandra-3.11.6-bin.tar /
然后我运行了以下命令,但注意到图像大小已达到 GB,而 .tar 只有 140MB。我 Ctrl+c 停止命令 C:\Users\manuc\Documents\manu>docker build -f CassandraImageDockerFile.txt .
Sending build context to Docker daemon 4.34GB
引擎盖下发生了什么?为什么图像大小以 GB 为单位?构建图像的正确方法是什么?
最佳答案
构建命令的最后一个参数是构建上下文。您添加或复制到图像的所有文件都必须在该上下文中。它被发送到 docker 引擎,并使用该上下文在沙箱(临时文件夹和容器)中运行构建。在这种情况下,上下文路径是 .
也就是当前目录。因此,请在该文件夹和所有子目录中查找总计许多 GB 的文件。您可以使用 .dockerignore
排除在上下文中发送到引擎的文件。文件,语法与 .gitignore
几乎相同文件。
关于docker build 运行到 GB 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62623016/