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

- Докер состоит из:
- Демон (служба);
- Клиент — интерфейс для взаимодействия;
- Образ — шаблон только для чтения, нельзя записать изменения, можно только создать новый на основе изначального. Используются для создания контейнеров. Образ состоит из уровней (слоев), каждое изменение это новый уровень. В каждом образе есть базовый образ;
- Реестр, в нем хранятся образы. Официальный - это DockerHub;
- Контейнеры — содержит все что нужно для работы приложения. Создаются из образа. Это, по факту, экземпляр приложения, сущность, которая предоставляет сервис. Контейнер с точки зрения концепции Docker – сущность, которая живет недолго. Он должен запуститься, поработать, и в дальнейшем уничтожиться. Все данные которые необходимо сохранить, монтируются к контейнеру в качестве подключаемых разделов.
Docker-образ создаётся во время сборки, а Docker-контейнер — во время запуска, на основе образа.
- Есть два варианта внесения изменений в образ:
- Запустить контейнер, зайти в него, провести необходимые действия, выйти из контейнера, выполнить команду docker commit для преобразования контейнера в образ;
- Написать dockerfile, в котором указать какой образ будет взят за основу, команды, которые нужно выполнить, открыть порты, указать что будет происходить при запуске контейнера.
- Особенности:
- Контейнер и процесс в нем выполняемый взаимосвязаны. Контейнер работает до тех пор, пока работает приложение, и если падает процесс, то падает и контейнер;
- Docker для всех контейнеров создает свою виртуальную сеть, контейнеры можно соединять в одну сеть;
- В Docker можно пробрасывать каталоги, тома, графический адаптер, звуковую плату и т.д.;
- При загрузке Docker-образа из удалённого репозитория скачиваются только отсутствующие слои. Docker экономит место и время, повторно используя уже существующие слои.
Установка Docker
Установка в CentOS:
добавление репозитория со свежей версией docker
добавление репозитория со свежей версией docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoустановка docker
yum install docker-ceКроме того можно установить дополнительные компоненты
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Установка в Ubuntu:
добавление ключа репозитория
добавление ключа репозитория
mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgдобавление репозитория
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullустановка docker
apt update apt install docker-ceКроме того можно установить дополнительные компоненты
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Запуск и добавление в автозагрузку
systemctl start docker systemctl enable dockerПроверка работы
systemctl status docker docker ps
Кроме управления docker через консоль, существует графическая программа docker-desktop, для ее установки нужно скачать соответствующую системе версию с сайта и установить.
Чтобы пользователь мог работать с Docker без прав суперпользователя, его нужно добавить в группу docker, если группы нет, то ее нужно создать.
Создание группы
Создание группы
groupadd dockerДобавление пользователя в группу
usermod -aG docker user123Перезапуск docker
systemctl restart dockerПосле этого пользователь user123 может работать с docker не используя sudo.