Комментарии 11
Интересный опыт) Я немного зелен в плане контейнеров(трогал их, но не так чтобы сильно) и заметил как много они едят пространства на ПК. А у вас запущенно просто куча всего, как такое удалось?
P.S:Самое тяжёлое что я разворачивал - django+nginx+postgres и эта махина ела +- 6GB ОЗУ(помню что около этого числа, давненько было)
У меня конфигурация с 16 ГБ оперативки, этого пока хватает на 23 контейнера. В большинстве из них запущен только процесс bash, пока я не запущу какую-то команду. Самое главное, что эти окружения всегда готовы к использованию.
Наиболее нагруженные – это 6 контейнеров с code-server и gitea, ещё недавно добавил firefox. Контейнер code-6 у меня раздувается до 2,5 ГБ, когда я открываю URL, там я активно работал и много брейкпоинтов и вкладок сделал в самой IDE. В неиспользуемом состоянии эти контейнеры занимают 100-400 МБ. Можно посмотреть подробный вывод docker stats ниже. В целом, половина памяти свободна при самом активном использовании.
docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e9eb11ef6f28 code-3 0.53% 403.2MiB / 15.62GiB 2.52% 1.84MB / 4.18MB 3.99MB / 1.09MB 72
2f6e19c81496 az1-control-1 0.00% 2.234MiB / 15.62GiB 0.01% 588kB / 436kB 274kB / 0B 1
1db5387b38b2 fox-1 0.00% 703MiB / 15.62GiB 4.39% 320MB / 115MB 678MB / 4.23GB 325
4d7517ccc1db db-ubnt-az1 0.00% 15.91MiB / 15.62GiB 0.10% 24.5MB / 495kB 59.2MB / 111MB 4
232b1a218b60 deploy-ubnt-az1 0.00% 2.066MiB / 15.62GiB 0.01% 248kB / 122kB 36.9kB / 0B 1
f339c3ed977e deploy-ubnt-az2 0.00% 68.62MiB / 15.62GiB 0.43% 30.5MB / 1.15MB 170MB / 159MB 2
bf3f850af068 code 0.45% 284.3MiB / 15.62GiB 1.78% 287MB / 72.4MB 1.54GB / 1.92GB 71
8a1facaf4ed8 db-ubnt-az2 0.00% 13.05MiB / 15.62GiB 0.08% 21.1MB / 546kB 971kB / 108MB 4
5c237c26fe93 clone-code 0.00% 21.07MiB / 15.62GiB 0.13% 2.19GB / 2.21GB 80.1MB / 265MB 1
9d0bfcb14108 dev 0.00% 12.84MiB / 15.62GiB 0.08% 5.81MB / 1.54MB 162MB / 135MB 1
b0f5e82588e4 code-2 0.28% 117.5MiB / 15.62GiB 0.73% 918kB / 1.67MB 27.2MB / 3.76MB 47
6767a5fe9888 add-users 0.00% 21.39MiB / 15.62GiB 0.13% 10.7MB / 37.5MB 10.4MB / 62.8MB 1
52e1a2caa043 code-4 0.63% 755.7MiB / 15.62GiB 4.72% 14.8MB / 31.2MB 62MB / 19.1MB 89
a69e15b715be code-6 14.83% 2.341GiB / 15.62GiB 14.99% 342MB / 243MB 2.78GB / 897MB 130
9108bf7dce87 code-5 1.75% 1.412GiB / 15.62GiB 9.04% 22.5MB / 53.2MB 160MB / 56.2MB 121
05db4dca667b deploy-sblx 0.00% 6.277MiB / 15.62GiB 0.04% 308kB / 0B 0B / 0B 6
930ace2a8706 deploy-ubnt-pd1 0.00% 13.27MiB / 15.62GiB 0.08% 622MB / 613MB 47.1MB / 604MB 1
854ca882de63 runner-1 0.17% 31.71MiB / 15.62GiB 0.20% 457MB / 1.12GB 83.9MB / 37.1MB 25
5b03cc1ebceb portainer 0.00% 43.3MiB / 15.62GiB 0.27% 170MB / 1.88GB 195MB / 1.02GB 20
9d98de2734ae squid 0.11% 178.9MiB / 15.62GiB 1.12% 266MB / 273MB 22.5MB / 1.83MB 8
43c8414fcecb coverage 0.01% 7.594MiB / 15.62GiB 0.05% 484kB / 667kB 1.04MB / 4.1kB 82
04d5f368596c pypi 0.01% 11.57MiB / 15.62GiB 0.07% 37.4MB / 26MB 3.39MB / 614kB 109
5f8ed01385ea git 3.91% 146.3MiB / 15.62GiB 0.91% 1.24GB / 38.8GB 6.41GB / 57.4GB 27
Остальную память, кстати, съедает пайплайн, когда запускаю тесты :)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e84febe685f7 GITEA-ACTIONS-TASK-1579_WORKFLOW-tox_JOB-tox 1343.45% 4.26GiB / 15.62GiB 27.26% 579MB / 1.27MB 240MB / 1.85GB 299
В остальном соглашусь – приложения сейчас сильно требовательные к оперативке. Но я всю работу делаю на стенде разработки, в котором развёрнута виртуалка с этим инструментарием, поэтому не ограничен рабочим устройством.
Смешались в кучу кони, люди,
И залпы тысячи орудий
Слились в протяжный вой...
Это все замечательно, но звучит как оверхед без ощутимых плюсов. Рабочую "среду" можно организовать в условном virtualbox чем и отделить мух от котлет. Внутри вм юзаем venv и радуемся)
Моя идея была в том, чтобы держать под рукой готовые окружения разного назначения, не только Python venv. В этом плане у меня получилось использовать единую среду в виде Docker и для приложений и для окружений. А ещё, управлять всем через веб-интерфейс. С VirtualBox я не могу представить похожего решения. Оверхед на запуск контейнеров наоборот меньше, если сравнивать запуск 23 виртуалок и 23 контейнеров.
Боюсь мне не понять гениальность маневра. Чтобы использовать условный MySQL/openstack клиент вы возитесь с контейнерами, вместо того чтобы просто вызвать cli в терминале?
Зачем запускать 23 виртуалки если все что нужно можно поднять в одной, из нее работать и при необходимости переносить ее образ диска (если цель маневра - переносимость)
Эх, твою бы статью 4 года назад мне! Статья супер! Добавляю в закладки, потому что больше половины не использовал в работе, а так tmux мне нравиться больше, а остальное еще надо попробовать!
Про контейнеры почитать интересно. Но проблема screen и tmux с горячими клавишами высосана из пальца: их можно переназначать в конфиге. И случайный выход тоже можно полечить.
Зачем я использую контейнеры как виртуалки: опыт python-разработчика