在 Debian 的 Docker 容器/镜像场景下,“省内存”可以从镜像构建、运行时配置、系统组件精简三个层面来做。下面按实用程度给你一套做法。
docker run -m 128m --memory-swap=128m debian
-m:最大内存不要用 systemd(非常吃内存):
docker run debian sh -c "命令"
或:
tini -- 你的程序
debian:slimFROM debian:bookworm-slim
比完整版少 100MB+,内存占用更低。
RUN apt-get update \
&& apt-get install -y --no-install-recommends xxx \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
--no-install-recommends:不装“建议包”apt-get clean:清缓存Debian 容器里常有多余东西:
rm -rf /etc/init.d/* \
/lib/systemd \
/usr/share/doc/*
unset TMPDIR
export ENV=/dev/null
或挂载 tmpfs:
docker run --tmpfs /tmp debian
如果是 Go / Rust:
FROM scratch
COPY app /app
ENTRYPOINT ["/app"]
内存可低到 几 MB。
| 方案 | 内存占用 |
|---|---|
| debian + systemd | 100MB+ |
| debian:slim | 20–40MB |
| alpine | 5–15MB |
| scratch | <5MB |
FROM debian:bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends tini \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["tini", "--", "你的程序"]
如果你愿意,可以告诉我:
我可以直接给你定制 Dockerfile。