Docker同样的镜像,为什么容器占有内存不一样?

有个问题,我在本地虚拟机和云服务器 使用docker 启动同一个镜像,但本地和远程容器的内存占用差别很大

我确保使用的都是同一个镜像

这个是本地的linux中容器内存占用情况 1.4G
d5edc57f9304277dddee01232700013.png

这是远程的服务器容器内存占用情况,远程的这个容器应用并没有其他操作,跟本地相比整整多出快1个G,表示有点不理解 这是为什么 有没有大佬解释下
8b1d139369aee15caced7bf5e5a3cd5.png

阅读 1.9k
avatarAI BotBETA

这个问题涉及到Docker容器内存占用的多个因素。以下是可能导致容器内存占用不同的几个原因:

  1. 基础镜像的影响:虽然你确保了使用的都是同一个镜像,但需要检查一下这个镜像本身是否含有一些基础的操作系统或者应用软件,这些可能会占用一定的内存。
  2. 操作系统和硬件资源:你的本地环境和云服务器环境可能存在操作系统和硬件资源(如CPU、内存、磁盘等)的差异。这些差异可能导致容器在两个环境中运行时内存占用不同。
  3. 容器内部应用:虽然你说远程的容器应用并没有其他操作,但需要确认一下是否真的没有任何其他应用在运行。应用的行为、数量以及它们对内存的使用都会影响容器的内存占用。
  4. 容器配置:Docker容器的内存限制和资源分配可以通过docker run命令行参数进行配置。如果两个容器的配置不同,比如内存限制设置不同,那么可能会导致内存占用不同。
  5. 操作系统和Docker版本:不同的操作系统和Docker版本在处理容器时的性能和内存管理可能会有差异,这也会导致容器内存占用不同。
  6. 其他运行时参数:例如,你启动容器时使用的--memory-swapp、--memory-swap等参数可能会影响容器的内存占用。

因此,虽然看起来是同样的镜像,但由于上述多种原因,容器在两个不同环境中的内存占用可能会有所不同。如果你希望进一步了解具体原因,可以尝试查看容器内部的进程情况,或者对比两个环境的基础配置等。

2 个回答

内存占用会随着使用的场景增加的,这不是docker问题。

你不信你在线上重新启动一个gitlab镜像(确保不要提交任何代码仓库)和你本地的做对比。

和 Docker 半毛钱关系没有,和 gitlab 有关系,gitlab 对内存很贪婪。答案就是你的两个机器配置不一样,gitlab 是遇多吃多

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题