【发布时间】:2021-10-26 14:02:30
【问题描述】:
我有一个基于 oracle linux 的本地 docker 映像,用于安装 oracle 数据库。这更像是一个 docker 问题而不是一个 DB 问题。
有一些相当大的数据文件(~12GB)。
通常,当我执行 docker commit 时,它会稍微增加图像的大小,并添加任何新内容。
我在机器上安装了 sudo,突然每次我提交映像时,它都会使映像的大小增加一倍 (12GB->24GB->50GB)。
我想我可以找到不使用 sudo 的方法,但有人猜到为什么仅仅以 root 身份运行“yum install sudo”会导致如此巨大的图像大小?我不知道要提供什么其他细节。
docker 提交没什么特别的:
docker commit my-container the-image:v1
我用 du -sh 浏览了整个图像,没有其他数据文件可以解释大小。
我确实有一些挂载点和卷,但据我所知,这些不应包含在映像中,即使它们是映像大小最终也会大于卷的总和。
有没有机会将交换空间写入图像?我关闭了数据库,不知道这与安装或不安装 sudo 命令有什么关系。
【问题讨论】:
-
复制您现在使用的确切图像需要运行哪些确切步骤?使用
docker commit通常不是最佳做法,因为它会导致图像难以复制。您通常也根本不需要 Docker 中的sudo,因为您始终可以在 Dockerfile 中切换到USER root来执行安装软件等操作。 -
不幸的是,oracle 数据库不会以 root 身份启动。我找到了一个可以直接使用 su 的解决方法。