Вопрос или проблема
Я запускаю виртуальную машину Debian 12 в ProxmoxVE и следую руководству по установке docker: https://docs.docker.com/engine/install/debian/
Вот результат выполнения команды apt-get update
:
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
hit:3 http://security.debian.org bookworm-security InRelease
Ign:4 https://download.docker.com/linux/debian \ InRelease
Err:5 https://download.docker.com/linux/debian \ Release
404 Not Found [ip: 13.249.59.6 443]
Reading package lists... Done
E: The repository 'https://download.docker.com/linux/debian \ Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
Сначала этот скрипт:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
выдавал мне “sudo command not found”, поэтому я удалил обратную косую черту после пайпа и принял скрипт, но получил первую ошибку.
Я проверил, не мой ли фаерволл блокирует порт 443, временно отключив его, но попытки загрузки не увенчались успехом. Я также пробовал запускать это в контейнере LXC и второй виртуальной машине с Debian 12 – во всех случаях с тем же результатом. Я предполагаю, что проблема в скрипте echo, поскольку я отклонился от документации, однако я продолжал получать различные ошибки, если не удалял обратную косую черту.
Урок здесь в том, что никогда, никогда не следует бездумно копировать серию командных строк, включающих команду sudo
, если вы не понимаете, что она делает.
Учитывая, что вы используете Debian 12, вы должны — от имени root — создать файл с именем /etc/apt/sources.list.d/docker.list
, содержащий следующую строку:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable
Как вы это сделаете – решать вам.
Если вы не используете amd64, подкоманда dpkg --print-architecture
покажет вам, какую архитектуру вы действительно используете; замените её там, где это необходимо.
(‘bookworm’ — это кодовое имя для Debian 12)
… Также, причина, по которой ваша команда не выполнена, заключается в том, что по умолчанию в Debian не установлен пакет sudo, и, я предполагаю, причина, по которой вы не столкнулись с этой проблемой раньше, заключается в том, что вы выполняли все действия под root. Обычно рекомендуется не выполнять всё от имени root; установите команду sudo
, набрав apt install sudo
, а затем войдите от имени вашего обычного пользователя, предположительно с правами sudo. (Если нет, то введите adduser myuser sudo
от имени root, где ‘myuser’ – это имя пользователя, которое вы выбрали)
Ответ или решение
Чтобы решить проблему с установкой Docker на Debian 12 и устранить ошибку "репозиторий не содержит файла Release", вам нужно внести некоторые изменения в конфигурацию источников APT. Выполните следующие шаги:
Пошаговое решение проблемы:
-
Убедитесь, что
sudo
установлен:
Поскольку Debian по умолчанию не устанавливаетsudo
, выполните команду от имени root, чтобы установить его:apt update apt install sudo
-
Добавьте группу
sudo
вашему пользователю:
После установкиsudo
убедитесь, что ваш пользователь имеет соответствующие права:adduser ваш_пользователь sudo
-
Создайте файл источников для Docker:
Откройте файл/etc/apt/sources.list.d/docker.list
и добавьте следующую строку:deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable
Обратите внимание: замените
$(dpkg --print-architecture)
на вашу архитектуру, если она неamd64
. -
Убедитесь в правильности подписи ключа:
Убедитесь, что директория/etc/apt/keyrings
существует, и скопируйте туда ключ Docker:# Создайте директорию, если она еще не существует mkdir -p /etc/apt/keyrings # Загрузите ключ Docker curl -fsSL https://download.docker.com/linux/debian/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
-
Обновите списки пакетов и установите Docker:
После всех изменений обновите список пакетов и установите Docker:sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Дополнительная информация:
-
Проверка сети: Исключите проблемы сети, убедившись, что ваш сервер или виртуальная машина имеют доступ к Интернету и могут открывать порты, необходимые для загрузки пакетов по HTTPS.
-
Права доступа: Убедитесь, что пользователи обладают необходимыми правами для выполнения команд
sudo
.
Применяя вышеописанные рекомендации, вы сможете успешно настроить установку Docker на Debian 12, избегая распространенных ошибок. Данный подход не только решает текущую проблему, но и обеспечивает безопасный и надежный процесс установки.