====== Контейнеризация в 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