Пропускная способность и дисковое пространство для контейнера Docker - PullRequest
0 голосов
/ 20 февраля 2019

Получает ли Docker-контейнер ту же ширину полосы, что и хост-контейнер?Или нам нужно настроить мин и (или) макс.Я заметил, что нам нужно переопределить оперативную память по умолчанию (которая составляет 2 ГБ) и конфигурацию пространства подкачки, если нам нужно запускать задачи с интенсивным использованием процессора.Также нам нужно настроить дисковое пространство?Или он по умолчанию получает столько же места, сколько и реальный жесткий диск.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Это зависит от того, какая у вас хост-система и сколько ей лет.

Во всех случаях пропускная способность сети явно не ограничена и не распределена между хостом и контейнерами;Контейнер может выполнять столько операций сетевого ввода-вывода, сколько он хочет, до ограничений хоста.

В текущем родном Linux нет настольного приложения, и docker info скажет что-то вродеStorage driver: overlay2 (overlay и aufs тоже хороши).Нет особых ограничений на использование памяти, процессора или диска;во всех случаях контейнер может использовать до полных физических ресурсов хоста, если только он не ограничен опцией docker run.

В более старом родном Linux нет настольного приложения и docker info говорит Storage driver: devicemapper.(Рассмотрите возможность обновления вашего хоста!) Все контейнеры и изображения хранятся в отдельной файловой системе, и ее размер ограничен (он включен в вывод docker info);Именованные тома и хост-привязки монтируются вне этого пространства.Опять же, память и ЦП не имеют внутренних ограничений.

Docker Toolbox и Docker для Mac обе используют виртуальные машины для предоставления ядра Linux не хостам Linux.Если вы видите ползунок «память», вы, вероятно, используете такое решение.Использование диска для контейнеров, образов и именованных томов ограничено емкостью виртуальной машины, а также памятью и процессором.Крепления хоста bind обычно проходят через хост-систему.

0 голосов
/ 20 февраля 2019

Память и процессор управляются с помощью док-станции cgroups.Если вы не настроите их, они не будут ограничены и могут использовать всю память и ЦП на хосте докера.Если вы работаете в виртуальной машине, которая включает в себя все установки Docker for Desktop, то вы будете ограничены ресурсами этой виртуальной машины.

Дисковое пространство обычно ограничено дисковым пространством, доступным в / var / lib / docker.По этой причине многие делают это другим креплением.Если вы используете devicemapper для драйвера графа докера (это в значительной степени устарело), ​​создали предварительно выделенные блоки дискового пространства, и вы можете контролировать размер этого блока.Вы можете ограничить контейнеры, запустив их с корневыми файловыми системами только для чтения и подключив тома в контейнер, имеющий ограниченное дисковое пространство.Я видел, как это было сделано с монтируемыми петлевыми устройствами, но для настройки петлевого устройства требуется некоторая конфигурация вне докера.В случае виртуальной машины вы снова будете ограничены дисковым пространством, выделенным для этой виртуальной машины.

Пропускная способность сети по умолчанию не ограничена.Я видел интересный проект под названием docker-tc , который отслеживает контейнеры на предмет их меток и обновляет параметры полосы пропускания для контейнера с помощью tc (управление трафиком).

0 голосов
/ 20 февраля 2019

Получает ли Docker-контейнер ту же ширину полосы, что и хост-контейнер?

Да.Нет ограничений на использование сети.Возможно, вы могли бы наложить ограничения, используя сеть моста .

Также нам нужно настроить дисковое пространство?Или он по умолчанию получает столько же места, сколько и реальный жесткий диск.

Это зависит от того, какой драйвер хранилища вы используете, потому что у каждого есть свои собственные параметры .Например, devicemapper использует 10G по умолчанию, но может быть настроен для использования больше.Рекомендованный драйвер теперь - оверлей2.Чтобы настроить запуск Docker с overlay2.size.

...