Я запускаю Docker в Ubuntu Linux. у меня есть Dockerfile
это приносит много данных из других источников. Я положил Dockerfile
на внешнем диске, который я подключил к локальной файловой системе (ext4). Затем я запустил сборку из файловой системы внешнего диска.
docker build -t mycontainer .
Я наблюдал за использованием диска, пока строился контейнер. Весь диск использовался в корневой файловой системе, а не в подключенном диске.
Я прочитал несколько статей об изменении корня / базы Docker с /var/lib/docker
в другое место, но пока все, что я получаю, это docker.service: Failed with result 'exit-code'
.
Я также попытался добавить -g options
в /lib/systemd/system/docker.service
файл:
ExecStart=/usr/bin/dockerd -H fd:// # original
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd:// # updated
Это тоже не помогло.
Как я могу сказать Docker, что нужно использовать внешний диск?
Несколько вещей помогли мне заставить это работать. Сначала я монтировал внешнюю файловую систему в домашнем каталоге, что могло вызвать некоторые проблемы с разрешениями. Итак, я перемонтировал файловую систему под /mnt
и обновил разрешения и права собственности следующим образом:
# chown -R root:root /mnt/external-drive/docker-base
# chmod 701 /mnt/external-drive/docker-base
Затем я создал /etc/docker/daemon.json
файл с таким содержимым:
{
"graph": "/mnt/external-drive/docker-base"
}
Я перезапустил докер-сервис, и вроде все хорошо. Делая docker build
и внешний диск получает все содержимое.