Щоб встановити Docker Engine на Debian, зазвичай користуються офіційною документацією Docker, яка описує базові кроки. Проте є деякі особливості і нюанси, які можуть допомогти уникнути проблем під час встановлення. Нижче наведено детальні інструкції з поясненнями.
Крок 1. Підготовка системи
-
Оновіть систему:
sudo apt update sudo apt upgrade -y
Це дозволяє уникнути конфліктів з іншими пакетами, які можуть перешкодити встановленню Docker.
-
Встановіть необхідні пакети для репозиторіїв HTTPS:
Docker потребує пакети для роботи з репозиторіями HTTPS.sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release -y
Крок 2. Додайте офіційний GPG-ключ Docker
Додавання GPG-ключа забезпечує довіру до пакунків Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Крок 3. Додайте офіційний репозиторій Docker
Після додавання ключа потрібно додати сам репозиторій:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Примітка. Інколи з’являються помилки через те, що деякі версії Debian можуть не мати відповідного тегу в репозиторії. Наприклад, для нестабільних версій, таких як testing або sid. У таких випадках можна замінити
$(lsb_release -cs)
на найближчу стабільну версію, як-отbuster
абоbullseye
.
Крок 4. Встановіть Docker Engine
-
Оновіть кеш репозиторіїв і переконайтеся, що система використовує репозиторій Docker:
sudo apt update
-
Перевірте, чи є Docker у списку доступних для встановлення пакетів:
apt-cache policy docker-ce
Це допомагає впевнитися, що пакет доступний саме з репозиторію Docker, а не з офіційного репозиторію Debian.
-
Встановіть Docker Engine:
sudo apt install docker-ce docker-ce-cli containerd.io -y
Крок 5. Перевірте встановлення
Переконайтеся, що Docker запущено і працює коректно:
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
sudo docker run hello-world
Додаткові особливості та рекомендації для Debian
-
Додавання користувача до групи Docker:
Щоб запускати Docker безsudo
, додайте користувача до групиdocker
:sudo usermod -aG docker $USER
Після цього вийдіть із системи і зайдіть знову, щоб застосувати зміни.
-
Управління версіями Docker:
Інколи потрібно встановити специфічну версію Docker, щоб забезпечити сумісність з іншими компонентами. Це можна зробити так:apt-cache madison docker-ce sudo apt install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Замініть
<VERSION_STRING>
на потрібну версію (наприклад,5:20.10.12~3-0~debian-buster
). -
Конфлікти з iptables
Docker використовуєiptables
для управління мережевими правилами, і на деяких системах Debian можуть виникати конфлікти з пакетами firewalld або іншими конфігураціями iptables. Щоб уникнути цього, можна встановити сумісну версіюiptables
:sudo apt install iptables arptables ebtables sudo update-alternatives --set iptables /usr/sbin/iptables-legacy sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy sudo update-alternatives --set arptables /usr/sbin/arptables-legacy sudo update-alternatives --set ebtables /usr/sbin/ebtables-legacy
-
Зміна параметрів Docker Daemon
Іноді потрібно налаштувати параметриdocker daemon
, зокрема налаштування проксі, обмеження ресурсів або логування. Файл конфігурації для Docker Daemon знаходиться тут:/etc/docker/daemon.json
Наприклад, щоб обмежити використання пам’яті для контейнерів або задати параметри DNS, можна додати такі налаштування:
{ "dns": ["8.8.8.8", "8.8.4.4"], "default-address-pools": [ {"base":"172.17.0.0/16","size":24} ] }
-
Тестування мережевих з’єднань Docker
Переконайтеся, що мережеві з’єднання працюють коректно. Це особливо актуально, якщо використовуються нестандартні налаштування мережі або фаєрволи.