Введение
В этой лабораторной работе вы погрузитесь в атмосферу викторианской эпохи, примерив на себя роль торговца антиквариатом. Ваша цель — эффективно транспортировать и демонстрировать исторические артефакты с помощью современных технологий, а именно — используя контейнеры Docker для оптимизации ваших операций.
Представьте, что вы уважаемый торговец антиквариатом в Лондоне 1880-х годов, известный своей исключительной коллекцией артефактов со всего мира. Однако вместо традиционных ящиков и витрин вы открыли революционную технологию под названием «контейнеры Docker», которая позволяет упаковывать, перевозить и демонстрировать ваши ценные предметы с беспрецедентной эффективностью и безопасностью.
К концу этой лабораторной работы вы поймете основы контейнеров Docker и научитесь использовать их для запуска приложений, что в нашем викторианском сценарии означает способность управлять коллекцией ценного антиквариата и демонстрировать её.
Настройка среды Docker
На этом этапе вы начнете с проверки того, что ваша среда Docker правильно настроена для запуска контейнеров. Представьте это как подготовку вашей антикварной мастерской с необходимыми инструментами и оборудованием.
Установите Docker, выполнив следующие команды в терминале:
sudo apt update sudo apt install docker.ioПервая команда обновляет списки пакетов, чтобы убедиться, что вы получаете последнюю версию Docker, а вторая команда устанавливает сам Docker. Префикс
sudoпредоставляет административные привилегии, необходимые для установки.После установки Docker перезапустите службу Docker, чтобы работающий демон соответствовал только что установленной версии:
sudo systemctl restart dockerЭта команда перезагружает демон Docker с новой версией пакета. Если Docker еще не был запущен,
restartтакже запустит службу. Это позволит избежать несоответствия версий API клиента и демона при запуске вашего первого контейнера.Убедитесь, что Docker работает успешно:
sudo systemctl status dockerЭта команда проверяет, активен ли Docker и работает ли он должным образом. Вы должны увидеть вывод со статусом
active (running), подтверждающий, что ваша среда Docker готова. Если вы видитеinactiveили какие-либо сообщения об ошибках, выполнитеsudo systemctl restart dockerеще раз перед продолжением.Чтобы иметь возможность выполнять команды Docker без использования
sudoкаждый раз, добавьте своего пользователя в группу docker:sudo usermod -aG docker $USERПримечание: после выполнения этой команды вам, возможно, потребуется выйти из системы и войти снова, чтобы изменения вступили в силу. В рамках этой лабораторной работы мы продолжим использовать
sudoс нашими командами Docker для обеспечения совместимости.
Запуск контейнера Hello-World
Теперь, когда ваша среда настроена, вы запустите свой первый контейнер Docker — простой пример "hello-world". Считайте это демонстрацией вашего первого артефакта, чтобы убедиться, что новая технология контейнеров работает как ожидалось.
Загрузите образ "hello-world" из Docker Hub:
sudo docker pull hello-worldЭта команда загружает образ hello-world из Docker Hub (публичного репозитория образов Docker). Представьте это как получение вашего первого артефакта из далекой страны. Docker Hub служит рынком, где можно найти готовые контейнеры для различных целей.
Запустите контейнер "hello-world":
sudo docker run hello-worldЭта команда создает и запускает контейнер из образа hello-world. Контейнер выполняет простую программу, которая выводит сообщение, а затем завершает работу. В нашем викторианском сценарии это эквивалентно краткой демонстрации вашего первого артефакта, чтобы убедиться, что ваша новая система контейнеров работает должным образом. Если Docker сообщает о несоответствии версий API клиента или демона, перезапустите службу с помощью
sudo systemctl restart docker, а затем повторите команду.Проверьте вывод, чтобы убедиться, что контейнер успешно отработал. Вы должны увидеть сообщение, начинающееся с "Hello from Docker!", за которым следует пояснительный текст. Это подтверждает, что:
- Docker установлен правильно
- Ваша система может успешно создавать контейнеры
- Вы можете загружать образы из Docker Hub
Чтобы увидеть список всех контейнеров (включая те, которые завершили работу):
sudo docker ps -aЭта команда показывает все контейнеры, включая контейнер hello-world, который уже завершил работу. Вы увидите такие детали, как ID контейнера, образ, из которого он был создан, время создания и текущий статус.
Развертывание веб-сервера Nginx
На этом этапе вы развернете веб-сервер Nginx с помощью контейнера Docker. В нашем викторианском сценарии это означает установку элегантной витрины (Nginx) для демонстрации ваших самых ценных антиквариатов (веб-контента) посетителям.
Загрузите образ Nginx из Docker Hub:
sudo docker pull nginxЭта команда загружает официальный образ Nginx из Docker Hub. Nginx — это популярный веб-сервер, который может обслуживать HTML-контент. Это эквивалентно приобретению изысканной витрины для вашей коллекции антиквариата.
Запустите контейнер Nginx в фоновом режиме (detached mode), сопоставив порт 80 на хосте с портом 80 в контейнере:
sudo docker run -d -p 80:80 nginxРазберем эту команду:
run: создает и запускает новый контейнер-d: запускает контейнер в фоновом режиме-p 80:80: сопоставляет порт 80 на вашей хост-машине с портом 80 в контейнере, позволяя веб-трафику достигать сервера Nginxnginx: указывает используемый образ
Это похоже на установку витрины в вашем выставочном зале и обеспечение того, чтобы посетители могли видеть ваш антиквариат.
Убедитесь, что ваш контейнер Nginx запущен:
sudo docker psЭта команда показывает все запущенные контейнеры. Вы должны увидеть свой контейнер Nginx в списке, что означает, что он активно работает.
Добавьте сопоставление веб-сервиса из верхнего меню лабораторной работы и установите сопоставление портов на 80. Если веб-сервер Nginx запущен успешно, среда лабораторной работы автоматически перейдет по случайному URL-адресу, и вы должны увидеть приветственную страницу Nginx по умолчанию.
Дополнительно: если вы хотите получить доступ к серверу Nginx из своего браузера вручную, вы можете перейти по адресу http://localhost или по IP-адресу вашей машины.
Если вы столкнулись с какими-либо проблемами, вы можете проверить логи контейнера:
sudo docker logs <container_id>Замените
<container_id>на ID вашего контейнера Nginx, который можно найти в выводе командыdocker ps.
Резюме
В этой лабораторной работе вы познакомились с фундаментальными концепциями запуска контейнеров Docker. Моделируя исторический контекст и выступая в роли торговца антиквариатом викторианской эпохи, вы получили практический опыт использования возможностей запуска Docker.
Вы узнали, как:
- Настраивать среду Docker
- Загружать образы из Docker Hub
- Запускать контейнеры как в интерактивном, так и в фоновом режиме
- Открывать порты контейнеров для хост-машины
- Проверять статус контейнера
Эти навыки составляют основу технологии контейнеризации и могут быть применены к широкому спектру приложений, выходящих за рамки нашего сценария с торговцем антиквариатом. В современных средах эти же методы используются для развертывания приложений, от простых веб-серверов до сложных архитектур микросервисов.
Способность упаковывать приложения вместе с их зависимостями в переносимые контейнеры революционизирует способы развертывания и управления программным обеспечением, подобно тому, как стандартизированные транспортные контейнеры изменили мировую торговлю. Как сказал бы наш викторианский торговец антиквариатом: «Эти чудесные контейнеры Docker произведут революцию в том, как мы представляем наши сокровища миру!»



