# Что такое Docker?

**Docker** — программное обеспечение для автоматизированного развертывания и управления приложениями в изолированных средах — контейнерах.

**Если говорить проще:** Docker помогает быстро развернуть разные проекты в своей изолированной контейнерной среде.

## Как он работает?

В контейнер можно «завернуть» свой или любой другой проект. Существуют готовые **образы (images)**, которые содержат предустановленные проекты со всеми зависимостями, что избавляет от необходимости компиляции и поиска библиотек.

## Готовые образы

Большая часть образов находится на [официальном репозитории Docker Hub](https://hub.docker.com).

Самые базовые:

- **Debian**, **Ubuntu**, **Fedora**, **CentOS** (ОС)
- **Python**, **MySQL**, **MariaDB**, **PostgreSQL** (сервисы)

А также готовые проекты:
- **PHP MyAdmin**, **Apache2**, **WordPress**, **phpBB**

Это позволяет запускать проекты на разных версиях ПО, обеспечивая совместимость даже со старыми системами.

## Доступ к контейнерам

Docker предоставляет несколько способов взаимодействия с контейнерами. Чаще всего используются:

- **Проброс портов** (например, порт `8080` в контейнере на порт `80` хоста)
- **Монтирование каталогов** (например, `/var/www/html` из контейнера в папку на хосте)

## Комбинирование контейнеров

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

**Пример стека для форума на phpBB:**

1. **MariaDB** — контейнер с базой данных
2. **phpBB** — контейнер с форумом, подключённый к MariaDB
3. **PHP MyAdmin** — контейнер для управления БД (опционально)

Все три контейнера работают вместе как единое приложение.

## Ссылки

- [Официальный сайт **Docker**](https://www.docker.com/)
- [Репозиторий образов **Docker**](https://hub.docker.com/)

