Спасибо. Это сводило меня с ума. Я думал, что bash выводит это сообщение. Я собирался подать ошибку против bash. К сожалению, ни один из представленных вариантов не является жизнеспособным на ноутбуке или таком, где диск полностью используется. Вот мой ответ на этот сценарий.
Вот что я использовал в/и т.д./sysconfig/Докер-памяти на моем ноутбуке:
DOCKER_STORAGE_OPTIONS="--storage-opt dm.no_warn_on_loop_devices=true"
Примечание: я должен был перезапустить службу Docker для этого, чтобы иметь эффект. На Fedora команда для этого является:
systemctl stop docker
systemctl start docker
Существует также только команда перезапуска (systemctl restart docker
), но это хорошая идея, чтобы проверить, чтобы убедиться, что остановка действительно работает, прежде чем начать снова.
Если вы не против отключения SELinux в своих контейнерах, другим вариантом является использование наложения.Вот ссылка, которая описывает, что в полной мере:
http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/
В резюме для/и т.д./sysconfig/докер:
OPTIONS='--selinux-enabled=false --log-driver=journald'
и/и т.д./sysconfig/DOCKER-хранения:
DOCKER_STORAGE_OPTIONS=-s overlay
Когда вы меняете тип хранилища, перезапуск докера уничтожит ваше полное хранилище изображений и контейнеров. Вы можете также все вверх в папке// вар Lib/Докер, делая это:
systemctl stop docker
rm -rf /var/lib/docker
dnf reinstall docker
systemctl start docker
В RHEL 6.6 любой пользователь, имеющий доступ Docker может получить доступ к своим приватные ключи, и запускать приложения как корень с самым тривиальным хаки через тома. SELinux - это единственное, что предотвращает это в Fedora и RHEL 7. Тем не менее, неясно, какая часть дополнительной безопасности RHEL 7 поступает от SELinux за пределы контейнера и сколько внутри контейнера ...
Как правило, loopback-устройства подходят для случаев, когда предел в 100 ГБ максимум и небольшая производительность не являются проблемой. Единственная проблема, которую я могу найти, - это хранилище докеров, которое может быть повреждено, если во время работы у вас есть полная ошибка на диске. Вероятно, этого можно избежать с помощью квот или других простых решений.
Однако для производственного экземпляра определенно стоит времени и усилий, чтобы правильно настроить это.
100G может быть чрезмерным для вашего экземпляра производства. Контейнеры и изображения довольно малы. Многие организации используют контейнеры докеров в VM как дополнительный показатель безопасности и изоляции. Если это так, у вас может быть довольно небольшое количество контейнеров, работающих на VM. В этом случае даже 10G может быть достаточным.
В заключение. Даже если вы используете прямой lvm, вам может понадобиться дополнительная файловая система для/var/lib/docker. Причина заключается в том, что команда «загрузка докеров» создаст несжатую версию изображений, загружаемых в эту папку, прежде чем добавлять их в хранилище данных. Поэтому, если вы пытаетесь сохранить его маленьким и легким, изучите параметры, отличные от прямого lvm.
Спасибо. Я думаю, мне нужно больше узнать о хранилище докеров и пройти тест. – rocksun
Вы также можете найти [этот обзор доступных вариантов хранения] (http://developerblog.redhat.com/2014/09/30/overview-storage-scalability-docker/) интересное чтение. – larsks
Ну, в случае, если у вас достаточно памяти (более 100 ГБ в лезвиях) и обрабатывает хосты докеров как эфемерные единицы, которые выполняют определенную работу, которая умирает, когда работа завершается (как правило, в системах CI), тогда я думаю, что loopback является жизнеспособный вариант. Использование ОЗУ как лишнего быстрого диска очень убедительно. – allprog