Docker - почему 50 контейнеров с Ubuntu занимают столько же ОЗУ, сколько 50x Alpine? - PullRequest
1 голос
/ 26 февраля 2020

Размер изображения Alpine составляет около 5 МБ, а у Ubuntu - 65 МБ. Так почему нет заметной разницы в использовании оперативной памяти? Если я правильно понимаю, образ docker X загружается в память, а затем используется всеми контейнерами (запущенными из одного и того же изображения). И затем для каждого контейнера должна быть создана отдельная файловая система, например, c., И поэтому в обоих случаях использование памяти было одинаковым.

Правильно ли мое понимание?

$ cat script.sh 
#!/bin/bash

for i in {1..50}
do
    docker container run alpine sleep 60 &
done

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       1.8Gi       4.5Gi       119Mi       1.4Gi       5.6Gi
Swap:         2.0Gi       103Mi       1.9Gi

$ ./script.sh 
$ free -mh

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       3.4Gi       2.9Gi       122Mi       1.5Gi       4.0Gi
Swap:         2.0Gi       103Mi       1.9Gi

$ vim script.sh 
$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       1.9Gi       4.5Gi       119Mi       1.4Gi       5.6Gi
Swap:         2.0Gi       103Mi       1.9Gi

$ cat script.sh 
#!/bin/bash

for i in {1..50}
do
    docker container run ubuntu sleep 60 &
done

$ ./script.sh 
$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       3.4Gi       2.9Gi       122Mi       1.5Gi       4.0Gi
Swap:         2.0Gi       103Mi       1.9Gi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...