Простий спосіб встановити Docker на Raspberry Pi

Docker - це дуже корисний інструмент для запуску контейнерних версій популярних програм (таких як бази даних) або налаштування деяких служб IoT на пристрої, підключеному до Інтернету.

Але інколи встановлення Docker може скласти клопоти, якщо це потрібно зробити кілька разів на різних комп’ютерах. Однак срібна підкладка полягає в тому, що в документах Docker є прихована хитрість, де описано, як встановити Docker лише двома рядками в терміналі.

Так, ви чули правильно! Всього за два рядки ви можете завантажити та встановити Docker.

Встановлення Docker можна виконати за допомогою скрипту bash, який автоматизує всю інсталяцію. Docker надає такий сценарій на get.docker.com. Перша команда буде використовувати цю URL-адресу, шукаючи файл із назвою get-docker.sh. Отримавши, ми просто запускаємо сценарій. Дві команди можуть бути об'єднані в ланцюжок, щоб сформувати такий вираз:

curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Тепер у вас встановлений Docker, і установка зайняла лише два рядки.

Як ви щойно побачили, дві наведені вище команди з'єднані ланцюгом за допомогою оператора '&&'. Це означає, що команди будуть виконуватися одна за одною, але їх можна вводити в одному рядку.

Однак одна невелика проблема полягає в тому, що у вас можуть виникнути труднощі із запуском команд Docker без sudo. Це можна виправити, але це займе ще кілька рядків.

Як налаштувати Docker для роботи без постійного використання sudo

Я знайшов це рішення на AskUbuntu після зіткнення з проблемою. Давайте пройдемо це зараз.

Є 3 кроки:

  1. Додайте групу Docker, якщо вона ще не існує:
sudo groupadd docker

2. Додайте підключеного користувача “$ USER” до групи докерів. Змініть ім’я користувача, щоб воно відповідало бажаному користувачеві, якщо ви не хочете використовувати поточного користувача:

sudo gpasswd -a $USER docker

3. Звідси у вас є два варіанти: або вийти, а потім увійти знову, або запустити, newgrp dockerщоб зміни набрали чинності.

Тепер ви повинні мати можливість запускати Docker без sudo. Щоб перевірити, спробуйте наступне:

docker run hello-world

Якщо це спрацювало, ви повинні побачити чудове повідомлення від Docker:

Знову ж таки, вся заслуга цього рішення належить цій чудовій відповіді AskUbuntu, яку я знайшов. Без постійного введення sudo з командами буде набагато простіше працювати.

Але почекайте, є ще!

Що робити, якщо ви також хочете скласти докер? Ви можете спробувати встановити джерело docker-compose аналогічно тому, як ми встановили Docker. Один цікавий підхід, який я знайшов у документах Google Cloud Engines, полягає в тому, що ви насправді можете запускати docker-compose як сам контейнер!

Це означає, що у вас є одноразова установка docker-compose, яка буде використана для створення ваших послуг. У будь-який момент ви можете викинути його та повторити кроки для нової композиції докера.

Першим кроком буде запуск docker-compose як контейнера та надання йому доступу до томів.

docker run \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$PWD:/rootfs/$PWD" \ -w="/rootfs/$PWD" \ docker/compose:1.13.0 up

Далі зробіть псевдонім для складання докера:

echo alias docker-compose="'"'docker run \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$PWD:/rootfs/$PWD" \ -w="/rootfs/$PWD" \ docker/compose:1.13.0'"'" >> ~/.bashrc

Потім перезавантажте bash:

source ~/.bashrc

Тепер у вас є повний доступ до docker-compose. Визначений вище псевдонім означає, що замість того, щоб набирати команди docker, коли ви хочете використовувати контейнер для складання, ви можете просто використовувати 'docker-compose', як зазвичай.

Важливе повідомлення про Docker на RPi

Raspberry Pi використовує архетектуру ARM, і, як результат, вона не буде сумісна з усіма готовими контейнерами. Зображення потрібно буде будувати з базового зображення ARM.

Ви можете переконатися в цьому, запустивши контейнерний екземпляр Redis на Raspberry Pi (що цілком стосується майбутньої серії, яку я пишу). Для цього буде потрібно робота з базовим зображенням. Якщо ми використовуємо ARM-сумісне зображення, проблем виникнути не повинно. Питання полягає у пошуку доглянутого.

Якщо вам сподобалась ця стаття, дайте їй плескати.

На моїй сторінці є інші публікації, пов’язані з Microservices, Ionic та іншими.