Как создать и запустить контейнер Docker «Hello World»

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

Введение

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

Введение в Docker

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

Что такое Docker?

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

Архитектура Docker

Архитектура Docker состоит из следующих ключевых компонентов:

graph TD
    A[Клиент Docker] --> B[Дэмон Docker]
    B --> C[Образы Docker]
    B --> D[Контейнеры Docker]
    B --> E[Репозитории Docker]
  • Клиент Docker: Пользовательский интерфейс для взаимодействия с системой Docker.
  • Дэмон Docker: Фоновый процесс, управляющий объектами Docker, такими как образы, контейнеры, сети и тома.
  • Образы Docker: Чертежи для создания контейнеров Docker.
  • Контейнеры Docker: Исполняемые экземпляры образов Docker.
  • Репозитории Docker: Репозитории для хранения и распространения образов Docker.

Преимущества использования Docker

  • Согласованность: Docker гарантирует, что приложения работают одинаково независимо от базовой инфраструктуры.
  • Масштабируемость: Контейнеры Docker можно легко масштабировать вверх или вниз в зависимости от потребностей приложения в ресурсах.
  • Переносимость: Контейнеры Docker могут работать на любой машине, на которой установлен Docker, независимо от базовой операционной системы.
  • Эффективность: Контейнеры Docker лёгкие и используют меньше ресурсов по сравнению с традиционными виртуальными машинами.

Начало работы с Docker

Для начала работы с Docker вам необходимо установить движок Docker на вашей системе. Вы можете загрузить и установить Docker с официального сайта Docker (https://www.docker.com/get-started). После установки вы можете начать использовать Docker для создания и запуска своих приложений.

Создание контейнера Docker "Hello World"

В этом разделе мы научимся создавать простой контейнер Docker "Hello World".

Создание Dockerfile

Dockerfile — это текстовый файл, содержащий инструкции для сборки Docker образа. Давайте создадим простой Dockerfile:

## Используем официальный образ Ubuntu 22.04 в качестве базового образа
FROM ubuntu:22.04

## Установите рабочую директорию в /app
WORKDIR /app

## Скопируйте скрипт "hello.sh" в контейнер
COPY hello.sh .

## Сделайте скрипт исполняемым
RUN chmod +x hello.sh

## Определите команду для запуска скрипта при запуске контейнера
CMD ["./hello.sh"]

В этом Dockerfile мы:

  1. Используем официальный образ Ubuntu 22.04 в качестве базового образа.
  2. Устанавливаем рабочую директорию в /app.
  3. Копируем скрипт "hello.sh" в контейнер.
  4. Делаем скрипт исполняемым.
  5. Определяем команду для запуска скрипта при запуске контейнера.

Сборка Docker образа

Для сборки Docker образа выполните следующую команду в той же директории, что и Dockerfile:

docker build -t hello-world .

Эта команда соберет Docker образ с меткой "hello-world".

Проверка образа

Вы можете перечислить все Docker образы на вашей системе, выполнив:

docker images

Вы должны увидеть образ "hello-world" в списке.

Запуск и изучение контейнера "Hello World"

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

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

Для запуска контейнера "hello-world" используйте следующую команду:

docker run hello-world

Эта команда запустит контейнер и выполнит команду, определённую в Dockerfile (т.е., запустит скрипт "hello.sh").

Вы должны увидеть вывод:

Hello, LabEx!

Изучение контейнера

Вы можете изучить запущенный контейнер, используя различные команды Docker:

  1. Список запущенных контейнеров:

    docker ps
    

    Это покажет запущенные контейнеры на вашей системе.

  2. Просмотр информации о контейнере:

    docker inspect hello-world
    

    Это предоставит подробную информацию о контейнере, такую как его конфигурация, настройки сети и многое другое.

  3. Просмотр логов контейнера:

    docker logs hello-world
    

    Это отобразит вывод скрипта "hello.sh", который был выполнен в контейнере.

  4. Выполнение команды внутри запущенного контейнера:

    docker exec -it hello-world /bin/bash
    

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

Остановка и удаление контейнера

Для остановки запущенного контейнера используйте следующую команду:

docker stop hello-world

Для удаления контейнера используйте следующую команду:

docker rm hello-world

Это остановит и удалит контейнер "hello-world" с вашей системы.

Резюме

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