Введение
Docker — это платформа для создания и запуска контейнеров. Контейнеры объединяют приложение с необходимыми ему файлами и библиотеками, поэтому приложение ведёт себя более единообразно в разных средах.
Контейнер — не то же самое, что полноценная виртуальная машина. Он изолирует процессы и представления файловой системы, одновременно используя ядро хост-системы. Поэтому контейнеры обычно запускаются быстрее виртуальных машин и потребляют меньше ресурсов.
Docker получил широкое распространение, потому что разработчики и администраторы часто сталкивались с одной и той же проблемой: программа работала на одном компьютере, но не работала на другом из-за различий в окружении. Контейнеры уменьшают такие различия, стандартизируя упаковку и запуск приложения.
В этой лабораторной работе вы проверите состояние среды Docker. Перед серьёзным использованием контейнеров важно убедиться, что Docker Engine установлен, клиент может подключиться к нему, а система успешно запускает тестовый образ.
Вы выполните следующие проверки:
- Проверите установленную версию Docker.
- Запустите тестовый контейнер, чтобы убедиться, что система может загружать и выполнять образы.
- Проверите состояние контейнера, чтобы понять его жизненный цикл.
Проверка версии Docker
Первый шаг проверки среды Docker — убедиться, что интерфейс командной строки Docker (CLI) доступен. Это подтверждает, что команда docker находится в переменной PATH системы.
Эта проверка подтверждает только наличие клиентского инструмента. Она ещё не доказывает, что фоновый Docker Engine работает исправно и что контейнеры действительно могут запускаться.
Откройте терминал и выполните следующую команду:
docker --version
Пример вывода:
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3
В выводе отображаются установленная версия Docker и информация о сборке. Наличие номера версии подтверждает, что клиент Docker успешно установлен и готов принимать команды.
Запуск тестового контейнера
Теперь, когда вы убедились в доступности клиента Docker, проверьте, запущен ли Docker Daemon — фоновая служба, управляющая контейнерами, — и может ли он запускать контейнеры.
Разделение на клиент и демон — важная часть архитектуры Docker. Команда docker, которую вы вводите, является клиентом, а демон выполняет основную работу: загружает образы, создаёт контейнеры и управляет их жизненным циклом.
Для проверки мы воспользуемся официальным образом hello-world. Этот небольшой образ специально предназначен для тестирования установки.
Выполните в терминале следующую команду:
sudo docker run hello-world
Зачем нужен sudo?
Docker Daemon взаимодействует с системой через сокет Unix. По умолчанию владельцем этого сокета является пользователь root, поэтому другие пользователи могут получить к нему доступ только с помощью sudo.
Что происходит при выполнении этой команды?
- Проверка локального образа: Docker проверяет, существует ли образ
hello-worldна локальном компьютере. - Загрузка: если образ не найден локально, Docker загружает его из Docker Hub — общедоступного реестра.
- Запуск: Docker создаёт на основе этого образа новый контейнер и выполняет его.
Эта последовательность также показывает различие между образом и контейнером. Образ — это повторно используемый шаблон, а контейнер — запущенный или остановленный экземпляр, созданный на основе этого шаблона.
Анализ вывода и состояния контейнера
На этом шаге вы проанализируете вывод предыдущей команды, чтобы убедиться, что контейнер запустился успешно.
После выполнения sudo docker run hello-world вы должны увидеть сообщение, похожее на это:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
Это сообщение подтверждает, что вся цепочка Docker — клиент, демон, реестр и контейнер — работает правильно.
Контейнер hello-world выводит это сообщение и сразу завершает работу. Несмотря на остановку, контейнер по-прежнему существует в вашей системе. Проверить это можно, выведя список всех контейнеров, включая остановленные.
Это важный первый пример жизненного цикла контейнера: контейнер может существовать в состоянии exited. В Docker понятия «работает» и «существует» связаны, но не идентичны.
Выполните следующую команду:
sudo docker ps -a
ps: выводит список контейнеров.-a(или--all): показывает все контейнеры, а не только запущенные.
В выводе должен быть указан hello-world со статусом Exited. Это подтверждает, что контейнер был создан, запущен и успешно завершил свою задачу.
Итоги
В этой лабораторной работе вы успешно проверили установку Docker. Вы научились:
- Проверять версию Docker, чтобы убедиться в установке инструмента CLI.
- Запускать контейнер
hello-world, чтобы проверить подключение к Docker Daemon и возможность загружать образы. - Подтверждать выполнение контейнера по его выводу и просматривать историю контейнеров.
После выполнения этих проверок можно быть уверенным, что ваша среда готова к более сложным операциям Docker.



