====== Контейнеризация в Docker ====== {{data:image/svg+xml;base64,PHN2ZyB2aWV3Ym94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9IndoYWxlLWljb24iPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIuODQgMTAuNzRjLS4wNS0uNDQtLjMzLS44LS43NC0uOTVhNC43IDQuNyAwIDAgMC00LjYzLjcgOS44IDkuOCAwIDAgMC01LjQ2LTEuNjNWNy4yMmguOWEuOS45IDAgMCAwIC45LS45VjUuMDNjMC0uNS0uNC0uOS0uOS0uOUgxMC4xYy0uNSAwLS45LjQtLjkuOXYxLjI4YzAgLjUuNC45LjkuOWguODh2MS42M0g5LjI3VjcuMjJoLjlhLjkuOSAwIDAgMCAuOS0uOVY1LjAzYzAtLjUtLjQtLjktLjktLjlINy40Yy0uNSAwLS45LjQtLjkuOXYxLjI4YzAgLjUuNC45LjkuOWguODd2MS42NGMtMy4xLjI1LTUuOTYgMS43LTguMTUgNC4xQy4yMiAxMy41LS4wNyAxNC41LjAyIDE1LjZjLjEgMS4wMi42NiAxLjkgMS41IDIuNDVBMTEuOSAxMS45IDAgMCAwIDcuNiAxOS41YzUuMzYgMCA5Ljk0LTMuNyAxMS40NS04LjhhNi4zIDYuMyAwIDAgMCAzLjgtMy4wN3oiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L3N2Zz4=}} ====== Развертывание приложений в 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