Найти в Дзене
Движение-Жизнь

Установка Docker на ArchLinux (Manjaro)

Продолжаю изучать фреймворк Django. В одной из лекций понадобился Docker... Что ж за "зверь" такой, этот docker?!

Docker — популярная технология контейнеризации, появившаяся в 2013 году. Тогда одноименная компания предложила способ виртуализации ОС, при котором код приложения, среда запуска, библиотеки и зависимости упаковываются в единую «капсулу» — контейнер Docker.
Благодаря контейнеризации и использованию Docker разработчики больше не задумываются о том, в какой среде будет функционировать их приложение и будут ли в этой в среде необходимые для тестирования опции и зависимости. Достаточно упаковать приложение со всеми зависимостями и процессами в контейнер, чтобы запускать в любых системах: Linux, Windows и macOS. Платформа Docker позволила отделить приложения от инфраструктуры. Контейнеры не зависят от базовой инфраструктуры, их можно легко перемещать между облачной и локальной инфраструктурами.

Пока сложно для понимания "что это такое и с чем его едят", для начала попробую поставить данный продукт на свои компьютеры с Arch-подобной Linux (у меня Manjaro).

Открываем главную страницу приложения Docker, все на английском но яндекс-браузер перевёл на русский. Клац по кнопке "скачать для Linux"

Попадаем на следующую страницу:

-2

Где можно видеть малоприметную ссылочку на инструкцию по установке на Arch-подобные системы. Переходим и видим инструкцию:

-3

В которой предлагается установить gnome-terminal. Пока не знаю зачем, но соглашусь, устанавливаю:

-4

Затем предлагается пройти на страницу загрузки "докера" и скачать последнюю версию для Arch. Ссылочку умело замаскировали, я ее не сразу обнаружил.

-5

Итак, "докер" скачан, сейчас буду устанавливать (я еще этого не делал, всё пишется в режиме реального времени). Открываю терминал, перехожу в директорию "Загрузки" и пытаюсь выполнить тот код, который написан в инструкции (установить ту программу что я только что скачал):

sudo pacman -U ./docker-desktop-<version>-<arch>.pkg.tar.zst

-6

После ввода пароля sudo у меня система запросила варианты выбора каких-то дополнительных пакетов. Понятия не имею что это такое и с чем это едят, выбор варианта - по умолчанию "1":

-7

Пошла установка:

-8

Установка успешно завершена:

-9

Далее предлагается запустить установленную программу, командой:

systemctl --user start docker-desktop

Попробовал, что-то запустилось, но явно пошло что-то не так, ибо обычно про ошибки сразу же не сообщается:

-10

Попробовал нажать кнопочку Reset Docker to factory defaults, после чего было сообщение о том что сброс произведен и запросился снова пароль sudo. И на этом всё, может надо заново запустить команду?!

Нет, таже самая фигня. Ну да ладно, мне "докер" нужен в Pycharm, пробую запустить его и что из этого получится. Опаньки! Пучарм, после запуска, предложил установить плагин "докера"

-11

После установки - непонятно куда идти дальше, ведь в уроках SkillBox должны в проекте появиться какие-то файлы от Docker, которые в лекции исправляют... А у меня пока нет, пересмотрю снова лекцию по Docker. В лекции узнал что:

  • Нужно оказывается включить в биос настройки виртуализации, у меня же они были выключены.
-12

Перезагрузился, вошел в биос и исправил настройки виртуализации

-13

После чего, командой выше попытался снова запустить Docker, и о чудо - заработало:

-14
-15

Теперь нужно запустить Pycharm и проверить там в консоли что докер так же запускается.

-16

но тут пока что "фигвам - индейское жилище".

Перелистал множество статей, попробовал даже переустановить "docker". А так же прошел регистрацию на сайте "докера", установил ключ безопасности в менеджере паролей pass. Но ошибка всё была одна и та же. Чего-то ему не хватало. Что именно - не понимал. Поиск в интернете предлагал понизить версию докера и прочие варианты решения проблемы. Но всё оказалось банально - нужно было в консоли выполнить установку "докер" командой "sudo pacman -S docker":

-17

Для отработки пройденных лекций нужна именно консольная версия докер. После установки всё заработало.

Закрался вопрос: так может быть всё что я тут описал про установку docker-desktop, это всё не нужно?! Достаточно было только одной команды sudo pacman -S docker??? Ладно, утром разберусь!

Я создал docker-контейнер, где запустил джанго-приложение, у меня всё заработало (как в лекциях), кроме django-debug-toolbar. Понятно что опять что-то упустил. Но время было уже полночь и башка отказывалась соображать. Утро вечера мудреней

На утро запустил Pycharm, пытаюсь пересобрать джанго-приложение (после внесенных изменений) в среде докер (docker compose build app) ииии...

ошибка...

Вот тут то я и понял - не зря значит я устанавливал docker-desktop и всё тут расписывал. Запустив из "пуска" docker - у меня сразу снова всё заработало.

-18
сначала ошибка, но после запуска docker-desktop ошибка ушла...
сначала ошибка, но после запуска docker-desktop ошибка ушла...

Ну вот. заработало. С чувством выполненного долга отправился на прогулку.

У меня еще 10 дней отпуска впереди...

ЗЫ. Статья не претендует на истину в последней инстанции, я всего лишь учусь. Но если кому-то это пригодится - буду рад.

UPD.22.09.23

Внизу, товарищ посоветовал сделать проще:

sudo pacman -S docker

Да, консольный докер установится, плюс к нему можно установить docker-compose, и даже всё это дело запускается. Но лишь с применением sudo. А это как бы не совсем катит.

-20
-21

Вот я вышел на работу, а тут на рабочем компе docker не установлен и я попробовал установить только консольные версии. Установил. Работает. Но через, как я писал выше, sudo.

Пришлось почитать свою статью и установить docker-desktop, которого нет в репозитории pacman, хотя, возможно можно было поискать в AUR. Но я решил идти той же дорогой которой уже ходил. И она была успешна.

Да, забыл описать процедуру вхождения в программу под своим аккаунтом. Нужно сгенерировать gpg-key:

gpg --generate-key

будет сгенерирован публичный ключ который нужно проинициализировать в менеджере паролей pass init <pub_key>
будет сгенерирован публичный ключ который нужно проинициализировать в менеджере паролей pass init <pub_key>

После чего кнопка Sign в приложении станет активна и отправит вас на сайт докера для завершения регистрации.

ЗЫ. В процессе установки возникла ошибка. Установщику не понравился установленная программа docker-compose, пришлось ее удалить.