Контейнеризация именно та вещь при разработке ПО, основы которой необходимо знать и то, чем необходимо владеть каждому современному разработчику в Linux/Unix системах. Давайте же рассмотрим как установить Docker , Docker-compose на Ubuntu 22.04 без головняка.
💾Ставим Docker
Это вполне нормальная тема, что в репозитории Ubuntu может быть не самая последняя версия Docker. Переходим на официальный сайт проекта и там скачаем новейшую версию пакета.
Сначала обновим и получим существующий список пакетов:
- sudo apt update
Затем выполним установку обязательных пакетов, которые позволяют apt использовать пакеты по HTTPS:
- sudo apt install apt-transport-https ca-certificates curl software-properties-common
Добавим ключ GPG официального репозитория Docker в вашу систему:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Добавим репозиторий Docker:
- echo"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновим список пакетов:
- sudo apt update
Теперь надо убедится, что все нормально и установка произойдёт из репозитория Docker, а не Ubuntu:
- apt-cache policy docker-ce
Если всё сделали правильно, то результат будет примерно таким:
docker-ce:
Installed: (none)
Candidate: 5:20.10.14~3-0~ubuntu-jammy
Version table:
5:20.10.14~3-0~ubuntu-jammy 500
500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
5:20.10.13~3-0~ubuntu-jammy 500
500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
Если результат примерно такой же, то поздравляю! Установка пройдёт так как надо.
Теперь можно устанавливать Docker:
- sudo apt install docker-ce
💾Проверка работоспособности
Выполним команду проверку статуса работы Docker’а:
- sudo systemctl status docker
На выходе увидим нечто подобное:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-04-01 21:30:25 UTC; 22s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 7854(dockerd)
Tasks: 7
Memory: 38.3M
CPU: 340ms CGroup: /system.slice/docker.service
└─7854 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Отлично! Служба работает на ура, а это значит, что мы можем чуть пошалить: попробуем запустить какой-нибудь контейнер:
- sudo docker run hello-world
Если все хорошо, то на выходе увидим:
- Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38
Status: Downloaded newer image for hello-world:lates
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
💾Даём право не ROOT юзеру ворошить контейнер
Дисклеймер!!!
Никогда без понимания всех рисков не делайте подобного в продакшн системах.
Сейчас пример ниже предоставляется для упрощения и демонстрации.
Т.к. мы фактически выдаём обычному пользователю Root права.
Docker не запускается без sudo по дефолту.
Добавляем своего пользователя в группу docker:
- sudo usermod -aG docker ${USER}
Делаем Logoff/login (Перелогинимся в системе) и повторно выполняем:
- docker run hello-world
💾Установка Docker-compose
Для начала немного разбавим теорию, чем же отличаются Docker и Docker Compose.
- Docker применяется для управления отдельными контейнерами (сервисами), из которых состоит приложение.
- Docker-Compose используется для одновременного управления несколькими контейнерами, входящими в состав приложения. Этот инструмент предлагает те же возможности, что и Docker, но позволяет работать с более сложными приложениями.
Запустим команду ниже для установки последней версии docker-compose.
П.С. проверить какая версия является последней всегда можно тут:
- curl -SL https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
Меняем атрибут файл, давая разрешение на запуск:
- chmod +x ~/.docker/cli-plugins/docker-compose
Убеждаемся в том, прошло ли всё успешно:
- docker compose version
Если всё отлично, то будет плюс минус:
- Docker Compose version v2.6.0
На этом всё, удачи ;)