docker build 运行到 GB 大小

标签 docker

我有一个要转换为图像的 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/

相关文章:

postgresql - Docker 在生成容器时复制 PGDATA 文件夹

ubuntu - Vagrant Rsync 不同步主机和 guest 之间的文件夹

linux - 限制Ubuntu上的容器资源

docker - 从一个容器执行代码到另一个容器(即,从API容器在工作容器上执行脚本)

docker - GCE 持久化磁盘、kubernetes 和数据持久化

docker - 使用 root 以外的用户附加到 visual studio 代码中的远程 docker 容器

linux - 在 CentOS 上从 .tar.gz 文件批量安装 RPM 包

linux - 针对 docker 容器执行时 Bash 脚本失败

docker - 如何在阻塞端口的同时仅允许通过特定 URL 访问 MERN 项目中的 Docker 容器?

Docker build 如何在golang build中添加库