Установка и настройка Docker на OC Ubuntu

Установка и настройка Docker на OC Ubuntu

09.02.2023
Автор: HostZealot Team
2 мин.
776

Современная инфраструктура не существует без микросервисов и контейнеров. Эти технологии отлично показывают себя, когда требуется запустить приложение в процессах, изолированных от ресурсов. Сервис Docker стал именем нарицательным, когда дело доходит до управления контейнеризации. Это приложение, которое упрощает управление процессами приложений в контейнерах.

Что представляет собой контейнер? Это структура, которая содержит внутри приложения со всеми необходимыми библиотеками и зависимости. Благодаря этому можно переносить нужные пакеты в другие дистрибутивы без необходимости создавать схожее окружение. В отличие от аппаратной виртуализации, контейнеры легкие для переноса, требуют меньше ресурсов. Но самое главное — в контейнерах полностью отсутствует зависимость от внешнего дистрибутива.

В статье мы разберемся в работе Docker Community Edition на примере дистрибутива Ubuntu 20.04. Мы опишем принцип взаимодействия с контейнерами и образами на конкретных примерах, разберем, что представляет собой Docker Compose.

Рекомендованные характеристики для железа

Что касается рекомендаций к «железу», то Docker не имеет хардверных требований. Учитывая, что это утилита для виртуализации, все зависит от масштаба приложений, что будут развернуты внутри контейнеров. Существует одно требование к «машинке» — поддержка виртуализации.

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

  • 64-битная архитектура;
  • ядро версии 3.10.

Настройка Docker в Ubuntu

Ранее было указано, что для настройки Docker мы воспользуемся сервером Ubuntu.

Установка Docker

Нам понадобится утилита последней версии. Можно не проверять репозиторий Ubuntu, так как там не всегда размещают самый свежий релиз программного обеспечения.

Предлагаем сразу обратиться к официальному реестру Docker. Для этого необходимо добавить новый пакетный источник. Чтобы убедиться, что будут загружены рабочие файлы, понадобится загрузка ключа GPG. После проделанных манипуляций можно установить пакет.

Сначала обновляем список пакетов на устройстве:

$ sudo apt update


Далее потребуется инсталлировать программное обеспечение, предназначенное для корректной работы apt по протоколу HTTPS:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common


Опционально могут понадобиться дополнительное ПО для ядра. Это необходимо, чтобы файловая система aufs получила возможность работать с контейнерами утилиты. Так вы сможете оперативно выявлять изменения и создавать Snapshot. Это образы, доступные только для чтения.

$ sudo apt install linux-image-extra-$(uname -r) linux-image-extra-virtual


Добавляем ключ GPG для репозитория Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


Последующие три команды необходимы для добавления репозитория ПО непосредственно в Ubuntu и дальнейшей установки Docker в дистрибутив.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update && apt-cache policy docker-ce
$ sudo apt install -y docker-ce


В отдельных случаях при запуске Docker можно столкнуться с невозможностью подключения к сокету. Чтобы этого избежать, добавьте пользователя в группу Docker. Используем следующую команду:

$ sudo usermod -aG docker $(whoami)


После этих действий ПО будет установлено, запущено и добавлено в автозагрузку. Дополнительно проверить работоспособность можно следующей командой:

$ sudo systemctl status docker


Если daemon работает корректно, в строке появится похожее сообщение:

$Output● docker.service - Docker Application Container Engine

  Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

  Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago

TriggeredBy: ● docker.socket

   Docs: https://docs.docker.com

 Main PID: 24321 (dockerd)

   Tasks: 8

  Memory: 46.4M

  CGroup: /system.slice/docker.service

      └─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

На этом этапе установка завершена, а утилита готова к работе. Для полноценного использоваться Docker, понадобится вспомогательный инструмент под названием Docker Compose.

Установка и настройка docker на oc ubuntu

Установка утилиты Docker Compose

Что представляет собой это программное обеспечение? Compose — это инструмент, который помогает запускать несколько разных контейнеров. Утилита использует определения служб, чтобы создавать полностью настраиваемые многоконтейнерные среды. Они могут совместно пользоваться сетью и пространством внешней памяти. Выполните следующую командную последовательность:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


Эта команда устанавливает правильные разрешения, чтобы исполнять команды docker-compose:

$ sudo chmod +x /usr/local/bin/docker-compose


Проверяем актуальность ПО и подтверждаем успешную инсталляцию:

$ docker-compose --version


Если мы видим такой вывод:

Output

docker-compose version 1.29.2, build 5becea4c

Значит, процесс прошел успешно.

Особенности Docker

Команда docker используется с опциями и подкомандами с дополнительными аргументами. Рассмотрим схематический синтаксис:

docker [опции] [команда] [аргументы]


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

$ docker


Откроется таблица:




  1. attach Прикрепить локальные стандартные потоки ввода, вывода и ошибок к работающему контейнеру
  2. build Создать образ из Docker-файла
  3. commit Создать новый образ из изменений контейнера
  4. cp Копировать файлы/папки между контейнером и локальной файловой системой
  5. create Создать новый контейнер
  6. diff Проверять изменения файлов или каталогов в файловой системе контейнера
  7. events Получить события реального времени с сервера
  8. exec Выполнить команду в запущенном контейнере
  9. export Экспортировать файловую систему контейнера в виде tar-архива
  10. history Показать историю образа
  11. images Список образов
  12. import Импортировать содержимое из tar-архива для создания образа файловой системы
  13. info Отображение общесистемной информации
  14. inspect Вернуть низкоуровневую информацию об объектах
  15. docker kill Убить один или несколько запущенных контейнеров
  16. load Загрузить образ из tar-архива или STDIN
  17. login Вход в реестр
  18. docker logout Выход из реестра
  19. docker logs Получить логи контейнера
  20. pause Приостановить все процессы в одном или нескольких контейнерах
  21. port Список сопоставлений портов или конкретное сопоставление для контейнера
  22. ps Вывести список контейнеров


Работа с образами Docker

Невозможно использовать контейнер без скачанного Docker Image. Если не вносились изменения, утилита берет образ в официальном хабе. Он носит название Docker Hub. Здесь находятся все образы, которые поддерживаются разработчиками утилиты. Размещать образы в реестре Hub могут все желающие. Поэтому популярные приложения, дистрибутивы Linux и апплетов уже имеют подготовленные образы в репозитории.

Введем команду для проверки возможности загружать Docker Image во внутреннюю память машины:

$ docker run hello-world


Сначала утилита проверит, есть ли указанный образ в памяти. Так как Docker ничего не обнаружит, он скачает необходимый образ, после чего запустит его в контейнере:

$Output

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

9bb5a5d4561a: Pull complete

Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

Это сообщение свидетельствует, что процесс загрузки и запуска нужного образа работает без ошибок.

Чтобы найти требуемый Docker Image в Hub, используйте подкоманду search и название необходимого образа. Скрипт начнет поиск в содержимом Docker Hub, покажет все результаты, которые соответствуют заданным параметрам. Обратите внимание на столбец OFFICIAL. Если напротив образа в этом столбце находится строчка OK, значит, перед вами официальный образ от команды создателей, а не форк.

Для скачивания достаточно набрать подкоманду pull. Допустим, это образ Ubuntu. В таком случае мы вводим:

$ docker pull ubuntu


Этот вывод свидетельствует, что процесс прошел успешно:

$ Output

Using default tag: latest

latest: Pulling from library/ubuntu

6b98dfc16071: Pull complete

4001a1209541: Pull complete

6319fc68c576: Pull complete

b24603670dc3: Pull complete

97f170c87c6f: Pull complete

Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d

Status: Downloaded newer image for ubuntu:latest

Таблицу с установленными образами можно просмотреть командой:

 $ docker images


Запуск командной оболочки контейнера

Для запуска контейнера применяется команда RUN. Рассмотрим опции, которые можно применять вместе с RUN:

  • -d — запускает контейнер в фоновом режиме;
  • -t — связь tty с контейнером для ввода и вывода;
  • -e — устанавливает переменные окружения для принятия лицензионного соглашения и изменения начальной конфигурации;
  • --name — присвоение имени контейнеру;
  • -p — публикация контейнерных портов на хосте, чтобы обеспечить удаленный доступ к DSE, OpsCenter и Studio;
  • -i — интерактивный доступ к командному процессору контейнера
  • -v — привязка каталога на локальном хосте к тому DSE для управления конфигурацией или сохранения данных;
  • --link — связь контейнера DSE с OpsCenter, Studio с DSE.

Используем команду:

$ docker run -it ubuntu


Мы запустили образ Ubuntu с доступом к командному процессору в интерактивном режиме. После этого мы переходим в окружение контейнера, в консоли отобразится его идентификатор. Эта информация нам понадобится позже, когда нужно будет указать контейнер для удаления.

Внутри контейнера доступны все привычные команды. Учитывая, что образ не содержит большинство нужных файлов. Поэтому потребуется обновить репозиторий:

$ apt-get update


Обращаем внимание, что команда sudo не используется. Так как работа ведется от имени пользователя с правами суперпользователя, нет нужды вписывать команду sudo. Установим простую утилиту Dialog:

$ apt-get install -y dialog

Сохранение параметров

Внутри контейнера доступны любые действия, можно создавать файлы, устанавливать приложения или удалять данные — все действия будут актуальны для запущенного контейнера. Когда контейнер будет удален, все изменения также исчезнут. Если нужно сохранить параметры, используйте команду commit. Она создаст модифицированный контейнер. Для начала нам понадобится список работающих контейнеров:

$ docker ps


Здесь нам понадобится идентификатор, выполняем эту команду:

$ docker commit -m "какие изменения добавлены" -a "имя автора" container_id repository/название нового образа


По завершению процесса модифицированный контейнер сохранится в памяти. Чтобы его найти, запустим список образов:

$ docker commit -m "какие изменения добавлены" -a "имя автора" container_id repository/название нового образа

Команды запущенных контейнеров

Рассмотрим список команд для управления:

  • start — запуск контейнера, который был остановлен;
  • stop — противоположное значение, остановка контейнера, который запущен;
  • rm — удаление контейнера.

Чтобы команда работала корректно, не обязательно указывать идентификатор. Можно использовать имя контейнера, оно доступно в отдельном столбце

Пример:

$ docker start d9b100f2f636
$ docker start sharp_volhard

Управление контейнерами Docker

Команда списка контейнеров позволяет запускать опции:

  • -a. Отображает список всех контейнеров, доступных локально.
  • -l. Выводит последний созданный контейнер.

Подведение итогов

Docker — главная утилита для запуска и управления контейнерами. Она достаточно легкая в освоении, начинающий пользователь может без труда разобраться во всех особенностях. Docker существенно ускоряет разработку, упрощает перенос системы с одного сервера на другой и позволяет работать в безопасной среде.

# Как сделать Поделиться:
Статьи по Теме