Запуск контейнера Docker

DockerBeginner
Практиковаться сейчас

Введение

В этом лабораторном занятии вы окунетесь в сценарий, развернутый в викторианскую эпоху, где вы будете играть роль дилера антиквариата. Ваша цель — эффективно транспортировать и представлять исторические артефакты с использованием современной технологии, а именно, использовать контейнеры Docker для упрощения своих операций.

Представьте, что вы уважаемый дилер антиквариата в Лондоне 1880-х годов, известный своим исключительным коллекционированием артефактов со всего мира. Однако вместо традиционных ящиков и витрин вы обнаружили революционную технологию под названием "контейнеры Docker", которая позволяет вам упаковывать, транспортировать и демонстрировать свои ценные предметы с беспрецедентной эффективностью и безопасностью.

К концу этого лабораторного занятия вы поймете основы контейнеров Docker и узнаете, как использовать их для запуска приложений, что в нашем викторианском сценарии представляет вашу способность управлять и демонстрировать свою ценную коллекцию антиквариата.

Настройка среды Docker

На этом этапе вы начнете с проверки правильной настройки среды Docker для запуска контейнеров. Представьте, что вы готовите свою мастерскую по обработке антиквариата необходимым инструментом и оборудованием.

  1. Установите Docker, выполнив следующие команды в терминале:

    sudo apt update
    sudo apt install docker.io

    Первая команда обновляет списки пакетов, чтобы вы получили последнюю версию Docker, а вторая команда устанавливает сам Docker. Префикс sudo предоставляет административные привилегии, необходимые для установки.

  2. После установки Docker запустите службу Docker:

    sudo systemctl start docker

    Эта команда активирует службу Docker, аналогично тому, как вы открываете свою мастерскую для работы. Теперь демон Docker работает в фоновом режиме и готов обрабатывать ваши запросы на запуск контейнеров.

  3. Проверьте, успешно ли запущен Docker:

    sudo systemctl status docker

    Эта команда проверяет, активен ли Docker и работает ли он корректно. Вы должны увидеть вывод с текстом "active (running)" зеленым цветом, подтверждающим, что ваша среда Docker готова к работе. Если вы видите "inactive" или любые сообщения об ошибках, вам, возможно, придется повторить попытку запуска службы.

  4. Чтобы иметь возможность запускать команды Docker без использования sudo каждый раз, добавьте своего пользователя в группу Docker:

    sudo usermod -aG docker $USER

    Примечание: После выполнения этой команды вам, возможно, придется выйти из системы и войти снова, чтобы изменения вступили в силу. В рамках этого лабораторного занятия мы будем продолжать использовать sudo с нашими командами Docker для обеспечения совместимости.

Запуск контейнера Hello-World

Теперь, когда ваша среда настроена, вы запустите свой первый контейнер Docker — простой пример "hello-world". Представьте, что вы демонстрируете свой первый артефакт, чтобы убедиться, что новая технология контейнеров работает как ожидается.

  1. Скачайте образ "hello-world" с Docker Hub:

    sudo docker pull hello-world

    Эта команда загружает образ hello-world с Docker Hub (публичного репозитория образов Docker). Представьте, что вы приобретаете свой первый артефакт из далекой страны. Docker Hub служит рынком, где вы можете найти предварительно упакованные контейнеры для различных целей.

  2. Запустите контейнер "hello-world":

    sudo docker run hello-world

    Эта команда создает и запускает контейнер из образа hello-world. Контейнер запускает простую программу, которая выводит сообщение и затем завершает работу. В нашем викторианском сценарии это эквивалентно кратковременной демонстрации вашего первого артефакта, чтобы убедиться, что новая система контейнеров работает корректно.

  3. Проверьте вывод, чтобы убедиться, что контейнер успешно запустился. Вы должны увидеть сообщение, начинающееся с "Hello from Docker!", за которым следует некоторый поясняющий текст. Это подтверждает, что:

    • Docker правильно установлен
    • Ваша система может успешно создавать контейнеры
    • Вы можете загружать образы с Docker Hub
  4. Чтобы увидеть список всех контейнеров (включая те, которые завершили работу):

    sudo docker ps -a

    Эта команда показывает все контейнеры, включая контейнер hello-world, который теперь завершил работу. Вы увидите такие детали, как идентификатор контейнера, из какого образа он был создан, когда он был создан и его текущий статус.

Развертывание веб - сервера Nginx

На этом этапе вы развернете веб - сервер Nginx с использованием контейнера Docker. В нашем викторианском сценарии это аналогично установке элегантного витрины (Nginx) для демонстрации ваших самых ценных антиквариатов (веб - контента) посетителям.

  1. Скачайте образ Nginx с Docker Hub:

    sudo docker pull nginx

    Эта команда загружает официальный образ Nginx с Docker Hub. Nginx — популярный веб - сервер, который может предоставлять HTML - контент. Это аналогично приобретению прекрасной витрины для вашей коллекции антиквариата.

  2. Запустите контейнер Nginx в отсоединенном режиме, сопоставив порт 80 на хосте с портом 80 в контейнере:

    sudo docker run -d -p 80:80 nginx

    Разберем эту команду:

    • run: Создает и запускает новый контейнер
    • -d: Запускает контейнер в отсоединенном режиме (в фоновом режиме)
    • -p 80:80: Сопоставляет порт 80 на вашем хост - компьютере с портом 80 в контейнере, позволяя веб - трафику достигать сервера Nginx
    • nginx: Указывает образ, который нужно использовать

    Это похоже на то, как вы ставите свою витрину в выставочном зале и обеспечиваете, чтобы посетители могли увидеть ваши антиквариаты.

  3. Проверьте, что ваш контейнер Nginx запущен:

    sudo docker ps

    Эта команда показывает все запущенные контейнеры. Вы должны увидеть ваш контейнер Nginx в списке, что означает, что он активно работает.

  4. Добавьте сопоставление веб - сервиса из верхнего меню лабораторной работы и установите сопоставление порта на 80. Если веб - сервер Nginx успешно запущен, лабораторная среда автоматически перейдёт по случайному URL - адресу в серверной лаборатории, и вы должны увидеть стандартную приветственную страницу Nginx.

  5. По желанию: Если вы хотите вручную получить доступ к серверу Nginx из своего браузера, вы можете перейти по адресу http://localhost или по IP - адресу вашего компьютера.

  6. Если вы столкнулись с какими - то проблемами, вы можете проверить логи контейнера:

    sudo docker logs <container_id>

    Замените <container_id> на идентификатор вашего контейнера Nginx, который вы можете найти в выводе команды docker ps.

Резюме

В этом лабораторном занятии вы познакомились с основными концепциями запуска контейнеров Docker. Симулируя исторический контекст и выступая в роли дилера антиквариата в викторианскую эпоху, вы приобрели практический опыт использования возможностей запуска Docker.

Вы узнали, как:

  • Настроить среду Docker
  • Скачивать образы с Docker Hub
  • Запускать контейнеры как в переднем, так и в отсоединенном режиме
  • Открывать порты контейнера для доступа с хост - машины
  • Проверять статус контейнера

Эти навыки являются основой контейнерной технологии и могут быть применены к широкому спектру приложений, выходящему за рамки нашего сценария с дилером антиквариата. В современных средах эти же методы используются для развертывания приложений от простых веб - серверов до сложных архитектур микросервисов.

Возможность упаковать приложения с их зависимостями в переносимые контейнеры революционизирует способ развертывания и управления программным обеспечением, аналогично тому, как стандартизированные морские контейнеры трансформировали мировую торговлю. Как сказал бы наш викторианский дилер антиквариата: "Эти замечательные контейнеры Docker революционизируют способ, которым мы представляем наши сокровища миру!"