Пропускная способность и дисковое пространство для контейнера Docker

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

3 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам