Docker не видит все диски — на устройстве не осталось места

если я побегу

df -h

внутри Dockerfile образа, который я хочу создать, он видит:

Filesystem      Size  Used Avail Use% Mounted on
overlay         118G  112G     0 100% /
tmpfs            64M     0   64M   0% /dev
tmpfs            16G     0   16G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/sda1       118G  112G     0 100% /etc/hosts
tmpfs            16G     0   16G   0% /proc/asound
tmpfs            16G     0   16G   0% /proc/acpi
tmpfs            16G     0   16G   0% /proc/scsi
tmpfs            16G     0   16G   0% /sys/firmware

но если я запускаю его снаружи, он видит:

Filesystem      Size  Used Avail Use% Mounted on
udev             16G     0   16G   0% /dev
tmpfs           3.2G  355M  2.8G  12% /run
/dev/sda1       118G  112G     0 100% /
tmpfs            16G  300M   16G   2% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/sda3       308G  4.8G  288G   2% /mnt/ssd
/dev/sdb1       1.8T  1.2T  605G  66% /home
tmpfs           3.2G   16K  3.2G   1% /run/user/1002
tmpfs           3.2G  4.0K  3.2G   1% /run/user/1038
tmpfs           3.2G     0  3.2G   0% /run/user/1037
/dev/loop1       97M   97M     0 100% /snap/core/9436
/dev/loop0       97M   97M     0 100% /snap/core/9665
/dev/loop3      163M  163M     0 100% /snap/blender/42
/dev/loop2      163M  163M     0 100% /snap/blender/43
tmpfs           3.2G     0  3.2G   0% /run/user/1039

Я получил сообщение об ошибке На устройстве не осталось места, и я хотел бы использовать свой диск /dev/sdb1 со свободными 600 ГБ, почему докер его не видит? Как я могу заставить его использовать это пространство?


person Asia Lucchi    schedule 08.08.2020    source источник


Ответы (1)


Docker — при отсутствии явной конфигурации наоборот — хранит данные контейнера в /var/lib/docker. Если вы хотите расширить пространство, доступное для ваших контейнеров Docker, одним из решений будет монтирование файловой системы из /dev/sdb в /var/lib/docker.

Кроме того, вы можете настроить Docker для хранения данных контейнера в другом месте, установив параметр data-root в файле /etc/docker/daemon.json, как описано в документацию dockerd.

Например:

{
  "data-root": "/home/docker"
}

В любом случае вы можете скопировать существующие файлы из /var/lib/docker в новое место; в противном случае Docker не увидит ваши существующие образы, контейнеры, тома и т. д. после внесения изменений.

person larsks    schedule 08.08.2020
comment
Спасибо за быстрый и четкий ответ, мне кажется, что мне нужно быть sudoers, чтобы сделать что-то из этого, верно? - person Asia Lucchi; 08.08.2020
comment
Вам понадобятся привилегии root для изменения конфигурации докера или конфигурации файловой системы вашего хоста, да. - person larsks; 08.08.2020