對于容器技術,Docker 可謂是最為流行的一種。相信使用 Docker 的人們都清楚,它可以幫助快速構建、打包和運行應用程序。
但是,你知道嗎?Docker 容器占用內存的問題是許多人關心的一個問題。
事實上,Docker 容器的內存占用與應用程序的特性和使用情況等相關。一般而言,一個簡單的應用容器不會占用很多內存,而一些復雜的容器則可能需要更多的內存資源。
通過下面的示例,可以更好地理解 Docker 容器占用內存的情況:
$ docker run -it --memory 32m --memory-swap 64m --rm busybox /bin/sh
通過該命令,我們在 busybox 鏡像上運行一個容器,并限制該容器的內存使用量為 32MB。
執(zhí)行 top 命令查看容器內存占用情況,可以看到:
Mem: 14176K used, 1420K free, 0K shrd, 840K buff, 8300K cached CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
此時,該容器的內存占用量為 14176KB,這個值日常使用中大致可達到 200MB 到 500MB。
如果我們不限制內存使用量,直接運行 busybox 容器,執(zhí)行 top 命令查看內存占用情況,會發(fā)現內存占用情況達到了 35MB 左右,略高于 32MB。
Mem: 365704K used, 21740K free, 0K shrd, 11532K buff, 138440K cached CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
總體而言,Docker 容器的內存占用量還是較為穩(wěn)定和可控的。