После обновления на Fedora 39 столкнулся с проблемой, что перестала запускаться сборка Docker из рабочего проекта. А так как сегодня понедельник, то нужно срочно (малой кровью) решить все, не откатываясь на предыдущую версию дистрибутива.

Ошибка

Ошибки менялись в зависимости “холодный” это запуск, или уже созданных контейнеров, или ручной запуск (рабочий проект использует docker-compose файл). Но вот несколько вариантов что “выпали” мне:

1
Cannot start service ***: failed to create task for container: failed to create shim task: ttrpc: cannot marshal unknown type: *task.CreateTaskRequest: unknown
1
Error response from daemon: failed to create task for container: failed to start shim: mkdir /var/run/docker/containerd/daemon/io.containerd.runtime.v2.task/moby/*****************: file exists: unknown

Даже запуск docker run hellow-world выдает такую же ошибку.

Оказалось что это известная проблема релиза. Но о ней почему-то не было указано в сводке проблем при обновлении. Так же под это дело уже есть оформленный баг.

Решение

Все дело в пакете containerd-1.6.23-1.fc39.x86_64. Именно манипуляции с ним решают проблему:

  • downgrade пакета до containerd-1.6.19-2.fc39.x86_64;
  • использование пакеты из copr-репозитория с пакетом containerd-1.7.0-5.fc39.x86_64.

Метод с откатыванием пакета я не проверял, так как не очень понял где “добыть” предыдущую версию, собранную именно под релиз f39. В актуальном репозитории сейчас есть только такие версии:

1
2
3
4
❯ dnf --showduplicates list --enablerepo=updates-testing containerd

containerd.x86_64   1.6.23-1.fc39   fedora
containerd.x86_64   1.6.23-1.fc39   updates-testing

Поэтому пошел путем номер два. Добавил репозиторий в систему:

1
sudo dnf copr enable sergiomb/docker2

И обновил пакет:

1
sudo dnf upgrade containerd

После этого все заработало:

1
2
3
4
❯ docker run --rm hello-world | head -3

Hello from Docker!
This message shows that your installation appears to be working correctly.

Далее когда решение “доедет” до основного репозитория, нужно будет только отключить copr.