Когда я запускаю докер, загружаются изображения докеров (как представляется,) в /var/lib/docker
где-то.
Поскольку дисковое пространство ограничено в этом каталоге, и я предоставляю докер нескольким машинам сразу; есть ли способ изменить это местоположение по умолчанию на ie /mnt/hugedrive/docker/
?
Ответ 2
Рабочий раствор от Docker v18.03
Я нашел комментарий @Alfabravo, чтобы работать в моей ситуации, так что кредит им и проголосовал.
Тем не менее, я думаю, что здесь есть смысл дать ответ, чтобы уточнить его:
Убедитесь, что докер остановлен (или не запущен изначально, например, если вы только что установили его)
(например, как пользователь root
):
systemctl stop docker
(или вы можете использовать sudo systemctl stop docker
если не root, но ваш пользователь - sudo
-er, т.е. принадлежит к группе sudo
)
По умолчанию файл daemon.json
не существует, поскольку он является необязательным - он добавляется для переопределения значений по умолчанию. (Ссылка - см. Ответ: Где докер deamon.json? (Отсутствует))
Таким образом, у новых установок docker и тех установок, которые никогда не изменяли его, его не будет, поэтому создайте его:
vi /etc/docker/daemon.json
И добавьте следующее, чтобы указать docker поместить все свои файлы в эту папку, например:
{
"graph":"/mnt/cryptfs/docker"
}
и сохранить.
Теперь запустите Docker:
systemctl start docker
(если root
или префикс с sudo
если другой пользователь.)
И вы обнаружите, что docker теперь поместил все свои файлы в новое место, в моем случае, в: /mnt/cryptfs/docker
.
Этот ответ от @Alfabravo также поддерживается: Этот ответ на эту проблему: флаги демона Docker игнорируются
Заметки и мысли о версии Docker
Моей хост-платформой, на которой работает докер, является Ubuntu Linux 16.04.4 LTS 64bit.
Поэтому я бы предположил, что это решение будет применяться к более поздним, будущим версиям Docker, а также к текущему времени написания, v18.03. Другими словами: "это решение должно работать начиная с 18.03 и далее". Как и в случае с другими ответами, существует также вероятность того, что этот ответ может не сработать для какой-либо будущей версии Docker, если разработчики Docker решат что-то изменить в этой области. Но сейчас он работает с v18.03, по крайней мере, в моем случае, я надеюсь, вы также найдете его для вас.
Дополнительный хозяйственный совет:
Если у вас были файлы в исходном расположении /var/lib/docker
и вы сами знаете, что они вам определенно больше не нужны (т.е. у вас есть все данные (базы данных внутри контейнеров, файлы и т.д.) В них, резервная копия или в другой форме), вы можете удалить их, чтобы сохранить вашу машину в порядке.
Что не сработало - другие ответы здесь (к сожалению):
Другие решения здесь не работали для моей ситуации с текущей версией докера, которую я использую (на момент написания текущей версией докера была: Docker v18.03 (текущая версия)).
Также обратите внимание (как @AlfaBravo правильно указывает в своем комментарии к моему ответу), что другие ответы вполне могли сработать для других или более ранних версий докера.
Должен отметить, что моей хост-платформой является Ubuntu Linux 16.04.4 LTS 64bit.
Во всех случаях, когда я пытался найти другие ответы, я следил за процессом остановки докера, прежде чем приступать к решению, а затем запускал его по мере необходимости. :
-
fooobar.com/questions/10594179/... - решение @Gerald Sabu M для изменения /lib/systemd/system/docker.service
- /lib/systemd/system/docker.service
строку на: ExecStart=/usr/bin/docker daemon -g/mnt/hugedrive/docker/
- Результат для меня: docker по-прежнему помещает свои файлы в исходное местоположение по умолчанию: /var/lib/docker
-
Я попробовал @Fai комментарий, но этот файл не существует в моей системе, поэтому это было бы что-то особенное для их настройки: /etc/systemd/system/docker.service.d/exec_start.conf. docker.service
/etc/systemd/system/docker.service.d/exec_start.conf. docker.service
-
Я также попытался ответить @Hatem Jaber fooobar.com/questions/10594179/... - но опять же, как и ответ @Gerald Sabu M, docker по-прежнему помещает файлы в исходное расположение по умолчанию /var/lib/docker
.
(Я, конечно, хотел бы поблагодарить их за их усилия, хотя).
Почему я меняю расположение докера по умолчанию: зашифрованная файловая система для целей GDPR:
Кроме того, и, возможно, полезно для вас, я запускаю докер внутри зашифрованной файловой системы (как часть инициативы GDPR), чтобы обеспечить состояние данных Encryption of Data-at-Rest (также известное как Encryption-at-Rest).), а также для данных в использовании) (определения). Процесс определения карты данных GDPR включает в себя, помимо прочего, рассмотрение систем, в которых хранятся конфиденциальные данные (Ссылка 1: Шаблон карты данных GDPR: простой в использовании инструмент самооценки для понимания того, как данные перемещаются по вашей организации) (Ссылка 2: Отображение данных: с чего начать для соблюдения GDPR). А зашифровав файловую систему, в которой хранится код базы данных и приложения, а также файл подкачки, можно исключить риск оставшихся данных при удалении или перемещении виртуальной машины. Я воспользовался некоторыми шагами, определенными в следующих ссылках, спасибо им: