Контейнеризация в Docker

Развертывание приложений в Docker

Полное руководство по установке Docker, загрузке локальных образов и оркестрации сервисов через Docker Compose.

1

Подготовка носителя с образами

Для загрузки образов без интернета, примонтируйте ISO-образ с данными в вашем гипервизоре (например, как виртуальный CD/DVD привод).

Узнайте, под каким именем устройство определилось в системе (обычно sr0 или sr1):

Copy

lsblk

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

Copy

mkdir /mnt/имя_вашего_устройства
mount /dev/имя_вашего_устройства /mnt/имя_вашего_устройства

2

Установка и запуск Docker

Установите основные пакеты: сам движок Docker и утилиту Compose для управления сложными проектами.

Copy

apt-get update && apt-get install -y docker-ce docker-compose

Сразу же добавьте службу в автозагрузку и запустите её:

Copy

systemctl enable --now docker

3

Загрузка образов (Docker Load)

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

Copy

cd /mnt/имя_вашего_устройства/путь_до_образов
docker load -i образ_приложения.tar
docker load -i образ_базы_данных.tar

4

Создание конфигурации (docker-compose.yml)

Создайте рабочую директорию проекта и откройте файл оркестратора. В нем строго важны отступы (используйте пробелы, а не табы).

Copy

mkdir ~/docker-project
cd ~/docker-project
vim docker-compose.yml

Наполните файл следующей структурой, определяющей базу данных и веб-приложение:

Copy

services:
  db:
    image: имя_образа_бд:тег
    container_name: имя_контейнера_бд
    restart: always
    environment:
      # далее идут все переменные контейнера в формате "название переменной: значение"
      DB_USER_VARIABLE: значение_пользователя
      DB_PASS_VARIABLE: значение_пароля
      DB_NAME_VARIABLE: значение_имени_бд

  testapp:
    image: имя_образа_веб_приложения:тег
    container_name: имя_веб_контейнера
    restart: always
    ports:
      # Проброс порта (Внешний_хост:Внутренний_контейнер)
      - "8080:8000"
    environment:
      # далее идут все переменные контейнера в формате "название переменной: значение"
      APP_DB_HOST: db
      APP_DB_USER: значение_пользователя
      APP_DB_PASS: значение_пароля
    depends_on:
      - db

5

Запуск и тестирование

Находясь в директории с файлом docker-compose.yml, запустите сборку и старт сервисов в фоновом режиме (ключ -d):

Copy

docker compose up -d

Убедитесь, что все контейнеры запущены и работают без перезагрузок (статус Up):

Copy

docker ps

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

Copy

http://IP_адрес_сервера:8080