Проверка установки Docker

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

Введение

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.

Что происходит при выполнении этой команды?

  1. Проверка локального образа: Docker проверяет, существует ли образ hello-world на локальном компьютере.
  2. Загрузка: если образ не найден локально, Docker загружает его из Docker Hub — общедоступного реестра.
  3. Запуск: 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.