Переход с Overlayfs на Overlay2 не удался при чистой установке: драйвер хранилища

Сообщения об ошибках появляются после запуска ./discourse-setup и ввода имени хоста, порта SMTP и т. д. согласно официальной инструкции по установке.

Нажмите ENTER, чтобы продолжить, ‘n’, чтобы попробовать снова, Ctrl+C для выхода:
letsencrypt.ssl.template.yml включён

Файл конфигурации в containers/app.yml успешно обновлён!

Обновление завершено успешно. Пересборка начнётся через 5 секунд.
Сборка приложения
Ваша установка Docker не использует поддерживаемый драйвер хранения. Если мы продолжим, установка может оказаться неработоспособной.
Рекомендуется использовать драйвер overlay2, хотя также могут работать zfs и aufs.
Известно, что другие драйверы хранения вызывают проблемы.
Чтобы узнать, какая файловая система используется, выполните команду “docker info” и найдите строку ‘Storage Driver’.

Если вы всё же хотите продолжить, используя существующий неподдерживаемый драйвер хранения,
изучите исходный код launcher и выясните, как обойти эту проверку.

Переход с Storage Driver overlayfs на overlay2

Я пытался следовать советам бота Discourse и поиску по предыдущим темам, таким как:

Но это всё равно не помогло.

root 3085 0.0 0.0 6480 2372 pts/1 S+ 05:27 0:00 grep --color=auto 2658

Невозможно установить Docker

Я пробовал сменить провайдера VPS на DigitalOcean и двух других, но всё равно не удалось.

Думал, что проблема в провайдере VPS, но после чистой установки на DigitalOcean с новыми droplet и по официальной/стандартной инструкции установка всё равно не удалась. Затем я попробовал двух других провайдеров VPS — результат тот же. :face_with_raised_eyebrow:

Думал, что проблема в версии Ubuntu, но после попыток с версиями 24, 22, 20 и 18 установка всё равно не удалась.

Client: Docker Engine - Community
 Version:    29.0.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.30.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.40.3
    Path:     /usr/libexec/docker/cli-plugins/docker-compose
  model: Docker Model Runner (Docker Inc.)
    Version:  v1.0.0
    Path:     /usr/libexec/docker/cli-plugins/docker-model

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 3
 Server Version: 29.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: fcd43222d6b07379a4be9786bda52438f0dd16a1
 runc version: v1.3.3-0-gd842d771
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.0-161-generic
 Operating System: Ubuntu 22.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 2.407GiB
 Name: please-help-me
 ID: 398f33a7-2b49-4235-bcb9-4e1723a7bd81
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Firewall Backend: iptables

Кто-нибудь может помочь?

Я могу подтвердить это поведение как минимум на двух недавно настроенных мной сайтах. С git.docker.com что-то не так, и он по умолчанию не загружает overlay2, как это делал годами.

Создайте файл /etc/docker/daemon.json со следующим содержимым:

{
  "storage-driver": "overlay2"
}

затем выполните

sudo systemctl restart docker

После этого всё должно заработать. Вы можете проверить, что драйвер установлен, с помощью команды

docker info --format '{{.Driver}}'

У меня тоже…

То есть, в настоящее время что-то не так с процессом официальной установки Discourse.

Я пробовал DigitalOcean с официальной установкой, но появилась эта ошибка. Затем я перешел к другому провайдеру VPS — результат тот же.

Надеюсь, кто-либо, кто сталкивается с проблемами при чистой установке Discourse в ноябре 2025 года :sweat_smile:, найдет решение выше :index_pointing_up:

Это мой третий день борьбы :tired_face:, и я сдаюсь.

Огромное спасибо, мистер Джей :folded_hands:

Ну, это вина Docker. Я постоянно думаю, что они это исправят, но пока я не замечу, что они это сделали, все мои установки создают этот файл, так что мне не о чем беспокоиться.

Я пожаловался на это здесь:

Docker использует новый драйвер хранилища по умолчанию для версий 29.0 и выше

Docker Engine версии 29.0 и выше по умолчанию использует хранилище образов containerd для новых установок. Хранилище образов containerd использует снапшоттеры вместо классических драйверов хранилища, описанных на этой странице. Если вы выполняете новую установку Docker Engine версии 29.0 или выше или если вы перешли на хранилище образов containerd, эта страница содержит справочную информацию о том, как работают слои образов, однако детали реализации отличаются. Для получения информации о хранилище образов containerd см. хранилище образов containerd.

Значит, если я правильно понимаю, нам нужно также искать и включать overlayfs?

PR по этому поводу здесь:

Я не знаю. Я не проверял, будет ли работать оверлей. В какой-то момент это не работало, поэтому это было требованием. Я не подумал, что это больше не требуется.

О.

Хранилище образов containerd, похоже, сообщает как overlayfs, поэтому мы должны разрешать эту строку тоже.

Да, из опубликованного вами поста видно следующее различие:

< Storage Driver: overlay2
<   Backing Filesystem: xfs

<   Supports d_type: true
<   Using metacopy: false
<   Native Overlay Diff: true
<   userxattr: false
---
>  Storage Driver: overlayfs
>   driver-type: io.containerd.snapshotter.v1

Я также переустановил/обновил Docker на своей машине для разработки, столкнулся с той же проблемой и могу подтвердить, что это, похоже, решает задачу.