↓ До тексту
  1. Статті/

Docker на Debian 13. Ставимо раз - і забуваємо

·3 хвилини
cat /etc/passwd
Автор
cat /etc/passwd
Технічний блог про Linux, DevOps та Open Source технології.
Зміст
Docker на чистій системі - частина серії статей.
Частина 1: ця стаття (ти тут)

Слухайте, ну хто з нас не ставив той Docker усоте. Сідаєш, думаєш - та шо там, три команди, зараз. А воно тобі: то ключ протермінований, то репозиторій не від того дистрибутива, то codename чужий. І ти вже сидиш годину, воюєш з apt, замість того щоб пити каву і робити щось корисне.

Що потрібно зробити?
#

Узяти голий Debian 13 і один раз поставити Docker по-людськи: з офіційного репозиторію Docker, зі справжнім ключем і правильним codename - щоб більше до цього не вертатися. А щоб ти не вірив мені на слово, усю сесію я записав прямо в терміналі, без монтажу.

З чим працюю?
#

1
2
3
4
5
6
7
root@deb13.linuxway.com.ua:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
ID=debian

Чистий Debian 13 (Trixie), нічого зайвого ще не стоїть. Далі все роблю від root.

Debian 13 (trixie) linuxway.com.ua

Усе, що нижче - це те, що ти бачив у записі, тільки вже можна копіювати.

Спочатку - елементарна гігієна
#

Оновлюємо список пакетів і ставимо те, без чого далі нікуди: сертифікати, curl і gnupg для роботи з ключем.

1
2
apt-get update
apt-get install -y ca-certificates curl gnupg

Нічого героїчного. Якщо curl і gnupg вже стоять - Debian чесно скаже «already the newest version» і піде далі. Не лякайся.

Кладемо ключ туди, де йому місце
#

Стара звичка apt-key add померла ще за Debian 11, царство їй небесне. Тепер ключ репозиторію живе окремим файлом, а не валяється одним спільним звалищем на всю систему. Робимо каталог під ключі й кладемо туди ключ Docker:

1
2
3
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

Зверни увагу: шлях - linux/debian, а не linux/ubuntu. І ось тут починається найцікавіше.

Та сама халепа з codename
#

У доброї половини інструкцій в інтернеті (і, чесно скажу, у моїх старих нотатках теж) у цьому місці зашито ubuntu і codename noble. Скопіював, вставив - і apt потім дивиться на тебе, як на дурника: нема такого репозиторію.

Бо Debian 13 - це не noble, це trixie. І щоб не вписувати його руками щоразу (а завтра вийде Debian 14, і ти знов забудеш), хай codename підставиться сам - із /etc/os-release:

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list

Одна команда - і в тебе завжди правильний рядок під той дистрибутив, на якому ти реально сидиш. Хоч Debian 13, хоч Ubuntu, хоч що вийде за три роки. dpkg --print-architecture так само сам розбереться, amd64 в тебе чи arm64.

І власне Docker
#

Тепер, коли apt знає, звідки брати, - оновлюємо список ще раз і ставимо все господарство: сам двигун, CLI, containerd, та два плагіни - buildx і compose.

1
2
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Отут Debian задумається на хвильку - треба підтягнути десь сотню мегабайт. Саме час на ту каву, про яку я казав на початку.

Перевіряємо, що воно живе
#

1
2
3
docker --version && docker compose version
systemctl is-active docker
docker run --rm hello-world

Якщо останнє видало тобі привітне «Hello from Docker!» - вітаю, ти щойно підняв і одразу прибрав за собою перший контейнер (на те --rm). Служба в автозапуску, compose - через пробіл, як новий плагін, а не старий окремий docker-compose через дефіс.

І все. Ніякого бубну, ніякого шаманства з протермінованими ключами. Один раз зробив правильно - і далі вже думаєш про цікаве: що в тому Docker запустити.

Записано на чистому Debian 13 (Trixie) у домашній пісочниці. Те, що бачиш у віконці вище, - реальний вивід системи, а не намальований.

Docker на чистій системі - частина серії статей.
Частина 1: ця стаття (ти тут)

Related