Docker - популярна програма для контейнеризації. Контейнери - стандартна одиниця програмного забезпечення, яка упаковує код і всі його залежності, для того щоб застосунок можна було швидко і надійно запустити на різних операційних системах і в різних обчислювальних середовищах.
З технічної точки зору контейнером називають запущений процес, який ізольований від інших процесів і має доступ до ресурсів комп'ютера. Далі розглянемо встановлення Docker у Debian 11, а також запуск першого застосунку.
Встановити можна двома шляхами - за допомогою стандартних репозиторіїв Debian або офіційного репозиторію Docker. У репозиторіях Debian міститься не найсвіжіша версія, тому розглянемо спосіб встановлення з офіційного репозиторію Docker.
Перед додаванням репозиторію необхідно оновити список пакетів, виконавши команду:
$ sudo apt update
Також встановити додаткові пакети, які необхідні для роботи з віддаленими репозиторіями. Для встановлення цих пакетів необхідно виконати команду:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Далі завантажуємо і додаємо PGP ключ від репозиторію. Для цього необхідно виконати команду:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Для додавання репозиторію необхідно виконати команду:
$ 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
Для встановлення спочатку необхідно оновити списки пакетів, щоб у системі з'явився новий репозиторій. Для цього достатньо виконати команду:
$ sudo apt update
На завершення можна встановити і додаткові пакети. Встановлення проводиться за допомогою команди:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Слово ce
в назві пакета docker-ce
розшифровується як community
, що означає, що буде встановлено безкоштовну версію (вона ж версія від спільноти). Тепер ви знаєте, як встановити docker debian.
Після встановлення, за замовчуванням він буде вимкнений. Щоб запустити програму необхідно виконати команду:
$ sudo systemctl start docker
Для того щоб він запускався разом з операційною системою, його необхідно додати в автозавантаження за допомогою команди:
$ sudo systemctl enable docker
За замовчуванням використовувати і виконувати його команди в терміналі може тільки користувач root. Якщо виконати будь-яку команду від звичайного користувача, то в терміналі відобразиться така помилка:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Для запуску команди від звичайного користувача і без використання команди sudo
необхідно додати користувача до групи docker
. Група docker
створюється автоматично під час встановлення. Однак якщо з якоїсь причини вона не створилася автоматично, її необхідно створити вручну, виконавши:
$ sudo groupadd docker
Далі для додавання поточного користувача в групу docker необхідно виконати:
$ sudo usermod -aG docker $USER
Змінна $USER
означає, що в групу docker
буде додано поточного користувача, від імені якого запущено сесію. Ця змінна присутня у всіх сучасних дистрибутивах Linux. Також варто зазначити, що група docker надає привілеї, еквівалентні привілеям користувача root.
Після додавання користувача необхідно перелогінитися в системі і тільки потім можна запустити будь-яку команду Docker
для перевірки. Як приклад було виконано команду docker ps
, яка відображає список запущених контейнерів:
$ docker ps
Як видно на скріншоті вище виконалася без помилок і від імені звичайного користувача.
Для повноцінної перевірки Docker можна завантажити тестовий образ з hello-world
для перевірки. Для цього необхідно виконати:
$ docker run hello-world
Команда docker run
завантажить образ програми з онлайн-репозиторію docker hub
- офіційного реєстру зберігання образів програмного забезпечення від Docker, який використовується за замовчуванням, і автоматично запустить його. У прикладі було виведено фразу Hello from Docker!
яка означає, що образ успішно було завантажено та запущено.