## Лабораторная работа №1: Знакомство с docker и docker-compose

---

**Цель:**  изучение современных технологий контейнеризации.

**Задачи:**

1. Установить средство контейнеризации docker.
2. Изучить применение и принципы docker.
3. Изучить утилиту docker-compose и структуру файла docker-compose.yml.
4. Развернуть не менее 3х различных сервисов при помощи docker-compose.
5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.

---

**Сервисы:**

* **Gitea:** Легковесная и самодостаточная система управления версиями кода с веб-интерфейсом. 
* **Postgres:** Мощная система управления реляционными базами данных с открытым исходным кодом.
* **Redis:** Высокопроизводительное хранилище данных типа "ключ-значение", используемое для кэширования, сессий и других задач.

---

**Инструкция по запуску:**

1. **Установка Docker:** Необходимо убедиться, установлен ли Docker на системе, в ином случае установить его.
2. **Навигация:** Перейти в директорию с файлом `docker-compose.yml`.
3. **Запуск:** Необходимо выполнить следующую команду в терминале:
   ```bash
   docker-compose up --build --remove-orphans
   ```
   Данная команда создаст и запустит все необходимые контейнеры, описанные в `docker-compose.yml`.

**Проверка:**

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

```bash
docker ps -a
```

В случае успеха мы можем увидеть список запущенных контейнеров (gitea, postgres и redis):
```bash
CONTAINER ID   IMAGE                COMMAND                  CREATED              STATUS         PORTS                                         NAMES
6ea2e28126a8   gitea/gitea:1.22.2   "/usr/bin/entrypoint…"   About a minute ago   Up 9 seconds   0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp   minhasapov_ruslan_lab_1-gitea-1
2490f332bc90   postgres:14          "docker-entrypoint.s…"   About a minute ago   Up 9 seconds   0.0.0.0:5432->5432/tcp                        minhasapov_ruslan_lab_1-postgres-1
c5580d8fe1d7   redis:latest         "docker-entrypoint.s…"   About a minute ago   Up 9 seconds   0.0.0.0:6379->6379/tcp                        minhasapov_ruslan_lab_1-redis-1
```
**Примечание:**

*Файл `docker-compose.yml` содержит подробную информацию о конфигурации каждого сервиса, включая порты, тома и переменные окружения.*

**Важно:**

После первого запуска **Gitea**, необходимо зайти на сервис *(по адресу `http://localhost:3000`)*, выполнить первоначальную настройку и создать суперпользователя. 

---

**Видеодемонстрация работы:**

Видео доступно по <u>*[ссылке](https://disk.yandex.ru/i/6Efipp3Gxs9-Jw)*</u>

---