
Цель урока: Подготовить чистый сервер, установить Docker и запустить веб-сервер Nginx внутри контейнера. Мы увидим, насколько это быстрее и чище, чем классическая установка из Урока 41.
Часть 0: Подготовка (Важно!)
Чтобы вы четко поняли магию Docker, нам нужна чистая система. Для этого, пожалуйста, сделайте переустановку ОС (Reinstall) в панели управления хостингом. Выберите, к примеру, Ubuntu 22.04.
Почему это важно?
В Уроке 41 мы ставили Nginx прямо в систему. Он создал кучу папок, служб и занял 80-й порт. Сейчас мы хотим сделать то же самое, но методом Docker, не засоряя систему. Если старый Nginx останется, он будет нам мешать.
Заходим на чистый сервер под root.
Часть 1: Установка Docker
Мы не будем использовать стандартную команду apt install docker.io, потому что в репозиториях Ubuntu лежит старая версия. Мы подключим официальный источник разработчиков.
Шаг 1: Обновление и установка утилит
Нам нужны программы для скачивания файлов и работы с сертификатами.
apt update
apt install -y ca-certificates curl gnupg
Шаг 2: Добавляем ключ доверия (GPG)
Linux не ставит программы из незнакомых источников. Этим ключом мы говорим системе: "Доверяй программам от компании Docker Inc."
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Шаг 3: Добавляем адрес репозитория
Вносим адрес сервера Docker в список, откуда наш apt качает программы. Скопируйте команду целиком:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
Шаг 4: Установка
Обновляем списки (чтобы увидеть новый источник) и ставим Docker.
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Шаг 5: Проверка
Проверим, что всё установилось корректно.
docker version
Если видите список версий - поздравляю, фундамент заложен.
Часть 2: Теория одной строкой (Напоминание)
Перед запуском вспомним термины из прошлого урока:
-
Образ (Image): Это файл-архив. Лежит на диске, каши не просит. (Аналог: установочный файл .exe или .deb).
-
Контейнер (Container): Это запущенная программа из образа. (Аналог: работающее окно программы).
Часть 3: Запускаем Nginx в Docker
В Уроке 41, чтобы получить работающий сайт, мы правили конфиги, настраивали папки, перезапускали службы systemctl...
В Docker всё это делается одной командой.
Поскольку наш сервер чистый, порт 80 свободен. Мы займем его нашим контейнером.
Команда:
docker run -d -p 80:80 --name my-web-server nginx
Разбор команды (читаем как предложение):
-
docker run: Докер, запусти контейнер!
-
-d (Detach): Запусти его в фоновом режиме. Не занимай мой терминал, работай "где-то там".
-
-p 80:80 (Port): Свяжи порты.
-
Левая 80 - это порт вашего сервера (внешний).
-
Правая 80 - это порт внутри контейнера (внутренний, где Nginx ждет гостей).
-
-
--name my-web-server: Назови этот контейнер "my-web-server", чтобы я мог к нему обращаться.
-
nginx: Используй образ nginx. (Docker сам поймет, что его нет локально, и скачает последнюю версию из интернета).
Результат:
Вы увидите, как Docker скачает слои (Download complete) и в конце выдаст длинный код (ID контейнера).
Часть 4: Проверка результата
-
В браузере:
Откройте http://ВАШ_IP_АДРЕС.
Вы увидите надпись: "Welcome to nginx!". -
В терминале:
Посмотрим список запущенных контейнеров:docker psВы увидите таблицу. Обратите внимание на столбец PORTS. Там написано 0.0.0.0:80->80/tcp. Это значит, что дверь открыта.
В чем главная разница с Уроком 41?
Попробуйте найти файлы Nginx в системе:
ls /etc/nginx
Система скажет: No such file or directory.
В этом суть! Nginx работает, сайт открывается, но в вашей основной системе нет ни одного файла Nginx. Всё спрятано внутри контейнера. Ваш сервер остался идеально чистым.
Часть 5: Управление контейнером
Мы не используем systemctl, так как Nginx для системы не существует. Мы управляем им через команды Docker.
1. Остановить сервер
docker stop my-web-server
Обновите страницу в браузере - сайт не откроется.
2. Запустить снова
docker start my-web-server
Сайт снова работает. Все настройки сохранились.
3. Удалить контейнер
Если сервер больше не нужен. Сначала обязательно останавливаем, потом удаляем.
docker stop my-web-server
docker rm my-web-server
Теперь контейнера нет. Но образ (установочный файл) остался на диске, чтобы в следующий раз запуститься мгновенно.
4. Удалить образ
Если вы хотите освободить место на диске (около 190 Мб):
docker rmi nginx
Часть 6: Выводы
Вы только что прошли путь системного администратора новой эры.
-
Мы установили Docker на чистую систему.
-
Мы развернули веб-сервер одной командой за 30 секунд.
-
Мы убедились, что Docker не мусорит в системе: удалили контейнер - и следов не осталось.
В следующем, 62-м уроке, мы перестанем запускать чужие пустые Nginx. Мы создадим свой собственный образ. Мы возьмем HTML-страницу, которую вы напишете, и "запечем" её внутрь образа так, чтобы её можно было отправить другу или клиенту.
Перейти к просмотру - УРОК №62.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

