Цель урока: Подготовить чистый сервер, установить 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: Теория одной строкой (Напоминание)

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

  1. Образ (Image): Это файл-архив. Лежит на диске, каши не просит. (Аналог: установочный файл .exe или .deb).

  2. Контейнер (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: Проверка результата

  1. В браузере:
    Откройте http://ВАШ_IP_АДРЕС.
    Вы увидите надпись: "Welcome to nginx!".

  2. В терминале:
    Посмотрим список запущенных контейнеров:

    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: Выводы

Вы только что прошли путь системного администратора новой эры.

  1. Мы установили Docker на чистую систему.

  2. Мы развернули веб-сервер одной командой за 30 секунд.

  3. Мы убедились, что Docker не мусорит в системе: удалили контейнер - и следов не осталось.

В следующем, 62-м уроке, мы перестанем запускать чужие пустые Nginx. Мы создадим свой собственный образ. Мы возьмем HTML-страницу, которую вы напишете, и "запечем" её внутрь образа так, чтобы её можно было отправить другу или клиенту.

Перейти к просмотру - УРОК №62.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)