在我的Node应用程序中,我正在使用缓存机制,我很困惑,我想知道在对它进行泊坞窗处理后,我的应用程序的内存大小是多少?
我正在使用Node 10.16.0-jessie-slim
码头工人图像。
Dockerfile
#Getting base image
FROM node:10.16.0-jessie-slim
#Maitainer
MAINTAINER Rajath
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 7234
CMD ["npm", "start"]
答案 0 :(得分:3)
未在Dockerfile或Docker-Image内部指定内存。而是在使用--memory
或-m
标志启动容器时分配一个Memory-Limit。如果您没有分配任何限制,则容器将没有限制,而是将使用服务器的最大内存。
答案 1 :(得分:1)
Dockerfile与内存限制或与资源相关的其他任何事物都无关。
因此,现在根据您的本地系统,内存取决于应用程序和每秒的请求。对于上述容器,我刚刚修改了您的Dockerfile,并使其nodejs和简单的快速应用程序在无任何请求的情况下在空闲状态下占用34MB内存。
FROM node:10.16.0-jessie-slim
#Maitainer
MAINTAINER Rajath
run apt-get -y update && apt-get install -y git-core
RUN git clone https://github.com/IBM-Bluemix/bluemix-hello-node /app
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
因此,您可以在此处运行docker stats
,以检查容器消耗的内存和CPU以及可以分配的最大内存。每个nodejs容器最多34MB,最大15GB。
这都是基于docker的,现在为了进一步研究,您可以使用portainer来获取详细信息日志portainer
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
一旦注册,您就可以检查
http://localhost:9000/#/containers/
内存处于空闲状态
CPU处于空闲状态
经过一点负载测试
那么,现在的问题是基础映像是否在内存中发挥作用?答案是是,进行了一些修改并将基本图像设置为 Alpine ,并且容器内存中
10MB
的差异大约为{{1 }}从alpine
到25MB
,其中30MB
从node:10.16.0-jessie-slim
到34MB
修改了上面的图像,将基本图像设置为最轻的阿尔卑斯图像。
40MB