gpt4 book ai didi

docker - Docker会协助作为高级压缩器吗?

转载 作者:行者123 更新时间:2023-12-02 20:45:58 24 4
gpt4 key购买 nike

我在ubuntu机器上有一个大小约为2 + GB的软件包。我已经从docker文件创建了一个docker镜像,大小约为86MB。现在,我通过使用copy命令更新docker文件来创建另一个镜像,该命令将在构建新的docker镜像的同时将ubuntu机器中的软件包复制到docker镜像。

现在,我看到docker镜像大小约为2GB,因为docker镜像也包含该软件包。我想知道这种docker现象是否有助于我们在制作为docker镜像后减小软件包的大小。

我希望以这种方式创建docker镜像,它还应该包含大约2GB的软件包,但我不希望docker镜像的大小超过200MB。

问候,
卡尔提克

最佳答案

Docker不会为您压缩图像的数据。希望对任意安装的软件包进行10倍压缩,无论是Docker还是其他方式,都相当乐观。

尽管Docker使用了一些聪明而复杂的内核机制,但在大多数情况下,容器中的文件会以奇怪的文件系统布局映射到磁盘上的普通文件。如果要在镜像中安装2 GB的软件包,则需要2 GB的本地磁盘空间。有一些共享数据的机制可以帮助减少总体磁盘使用率(如果您基于该镜像运行10个容器,它们将共享2 GB基本镜像,并且不使用额外的磁盘空间),但是没有内置压缩。

进一步说明:在Dockerfile中采取措施以某种形式使用空间后,该空间将被永久使用。 Dockerfile中的每一行都创建一个新的“层”或单独的镜像,该镜像记录了上一层的更改。如果您试图安装不在某种存储库中的软件包,那么除非有多级构建,否则您将无法使用其在镜像中的空间利用率:

FROM ubuntu:18.04
COPY package.deb .
# At this point there is a layer containing the .deb file and
# it uses space in the final image.
RUN dpkg --install package.deb && rm package.deb
# The file isn't "in the image", but the image remembers adding it
# and then removing it, so it still uses space.

关于docker - Docker会协助作为高级压缩器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com