Урок 5

Что такое Docker и зачем он нужен

12 мин

Проблема: "У меня работает!"

Представьте ситуацию: вы написали сайт на своём компьютере, всё работает. Отправляете коллеге — а у него не работает. Почему?

  • Разные версии PHP
  • Разные настройки сервера
  • Не установлен какой-то модуль
  • Другая операционная система

Раньше разработчики тратили часы на настройку окружения. Docker решает эту проблему.

Что такое Docker?

Docker — это программа, которая запускает приложения в контейнерах.

Что такое контейнер?

Представьте грузовой контейнер на корабле:

  • Внутри него может быть что угодно — телевизоры, бананы, машины
  • Снаружи все контейнеры выглядят одинаково
  • Их легко перемещать с корабля на корабль, на поезд, на грузовик
  • Содержимое изолировано и защищено

Docker-контейнер работает так же, только внутри — программы:

  • Внутри контейнера — PHP, MySQL, или любая другая программа
  • Контейнер содержит ВСЁ необходимое для работы программы
  • Контейнер работает одинаково на любом компьютере
  • Программа изолирована от вашей системы
Простыми словами:
Docker — это коробка, в которую мы кладём программу со всеми её зависимостями. Эту коробку можно запустить на любом компьютере, и программа будет работать одинаково.

Ключевые понятия

Образ (Image)

Образ — это "чертёж" контейнера. Готовый набор файлов и инструкций. Образы создают другие разработчики, а мы их скачиваем.

Примеры образов:

  • php:8.2 — образ с PHP версии 8.2
  • mysql:8.0 — образ с MySQL
  • nginx:latest — образ с веб-сервером Nginx

Контейнер (Container)

Контейнер — это запущенный образ. Если образ — это чертёж, то контейнер — это построенный по нему дом.

Из одного образа можно запустить много контейнеров.

Docker Hub

Docker Hub — это "магазин" образов. Там лежат тысячи готовых образов, созданных сообществом и компаниями. Мы будем скачивать образы оттуда.

Зачем нам Docker?

Для нашего блога нужно три программы:

Программа Зачем Без Docker С Docker
Apache + PHP Веб-сервер и выполнение PHP Скачать, установить, настроить конфиг, перезапустить... Одна команда
MySQL База данных Скачать, установить, создать пользователя, настроить... Одна команда
phpMyAdmin Управление базой через браузер Скачать, распаковать, настроить подключение... Одна команда

С Docker всё это запускается одной командой за 30 секунд.

Docker не засоряет систему

Всё, что работает в Docker, изолировано от вашего компьютера:

  • Хотите удалить всё? Одна команда — и ничего не осталось
  • Сломали настройки? Пересоздайте контейнер за секунды
  • Нужна другая версия PHP? Просто укажите в настройках

Как будет работать наш проект

Мы создадим три контейнера:

┌─────────────────────────────────────────────────┐
│              Ваш компьютер                       │
│                                                  │
│  ┌──────────────┐  ┌──────────┐  ┌───────────┐  │
│  │  Контейнер 1 │  │Контейнер2│  │Контейнер 3│  │
│  │  PHP+Apache  │  │  MySQL   │  │phpMyAdmin │  │
│  │  Порт 8080   │  │Порт 3306 │  │ Порт 8081 │  │
│  └──────────────┘  └──────────┘  └───────────┘  │
│         │                │              │        │
│         └────────────────┼──────────────┘        │
│                          │                       │
│              Общая сеть внутри Docker            │
└─────────────────────────────────────────────────┘

В браузере:

  • localhost:8080 — ваш сайт
  • localhost:8081 — phpMyAdmin

Что дальше?

В следующем уроке установим Docker Desktop. Это программа с графическим интерфейсом, которая управляет всей магией Docker.

Мы используем файлы cookie для улучшения работы сайта и персонализации контента. Продолжая использовать сайт, вы соглашаетесь с использованием cookies в соответствии с нашей Политикой конфиденциальности.