Видео урока скоро будет доступно
Установите Docker Desktop, упакуете свой сайт в контейнер вместе с Nginx и научитесь запускать его на любой системе без лишних настроек.
После этого урока вы:
Совет: если Docker Desktop не устанавливается на Windows — включите виртуализацию в BIOS и WSL 2 (см. FAQ в вики курса).
Docker — платформа для разработки, доставки и запуска приложений в изолированных средах, которые называются контейнерами.
Аналогия: вы перевозите хрупкую посуду. Вместо разных коробок с разными правилами упаковки вы используете стандартные контейнеры — в них можно положить что угодно, и они одинаково защищены везде: на корабле, в поезде, в грузовике.
Зачем это нужно?
| Термин | Что значит |
|---|---|
| Образ (Image) | Шаблон, из которого создаются контейнеры. Содержит операционную систему, зависимости и код. |
| Контейнер | Запущенный экземпляр образа. Изолированная среда для приложения. |
| Dockerfile | Текстовый файл с инструкциями по сборке образа. |
| Docker Hub | Облачный реестр, где хранятся и скачиваются готовые образы. |
docker run | Команда, которая запускает контейнер из образа. |
Образ — это рецепт, контейнер — готовое блюдо. Из одного образа можно создать множество контейнеров.
Статический сайт — это просто HTML, CSS, JS файлы. Чтобы показать их в браузере, нужен веб-сервер (например, Nginx или Apache). Docker позволяет упаковать ваш сайт вместе с Nginx в один контейнер, который можно запустить на любом компьютере.
Это удобно:
Итог: контейнер содержит и ваш сайт, и сервер — на любом компьютере он запустится одинаково.
1.1. Скачивание и установка
1.2. Проверка установки
Откройте терминал и выполните:
Вы должны увидеть версию, например Docker version 24.0.6. Затем:
Docker скачает тестовый образ и запустит контейнер. Приветственное сообщение = установка успешна!
2.1. Структура проекта
Создайте папку для проекта, например my-docker-site. Внутри должны быть ваши файлы сайта:
Важно: все файлы должны быть в этой папке (а не в подпапке внутри неё), чтобы команды из следующих шагов работали правильно.
Dockerfile — файл без расширения с инструкциями по сборке образа. Попросите AI сгенерировать его для статического сайта:
«Создай Dockerfile для статического сайта на основе Nginx: образ должен брать лёгкий nginx:alpine, копировать все файлы проекта в папку /usr/share/nginx/html, открыть порт 80 и запустить Nginx. Также создай файл .dockerignore, который исключает .git, *.md и .DS_Store.»
AI должен дать вам примерно такой Dockerfile:
Пояснение:
FROM nginx:alpine — лёгкий образ Nginx на основе Alpine Linux.COPY . /usr/share/nginx/html — копирует файлы в папку, откуда Nginx раздаёт сайт.EXPOSE 80 — контейнер слушает порт 80.CMD — команда запуска Nginx внутри контейнера.Шаг 4. Сборка образа
Откройте терминал в папке проекта (с Dockerfile) и выполните:
Флаг -t my-site задаёт имя образу, точка указывает, что Dockerfile лежит в текущей папке. Проверьте список образов:
Шаг 5. Запуск контейнера
-d — фоновый режим (detached).-p 8080:80 — порт 80 контейнера пробрасывается на порт 8080 компьютера.--name my-site-container — имя контейнера.my-site — имя образа.Откройте браузер: http://localhost:8080 — ваш сайт работает внутри контейнера!
Управление контейнером:
Шаг 6 (опционально). Деплой на сервер через Docker Hub
docker login.docker build -t ваш_логин/my-site .docker push ваш_логин/my-siteНа сервере с Docker:
Теперь сайт доступен по IP-адресу сервера!
http://localhost:8080.Совет: полный чек-лист урока — в checklists-bonus.md, а готовые промпты — в prompts-bonus.md.
Главный итог: теперь вы можете упаковать свой сайт в контейнер и запускать его на любой системе без лишних настроек. Это профессиональный способ развёртывания приложений! 🚀