Что такое контейнер Docker и как его запустить

На список статей
Blog image

Защитите свои сайты с My-Sites-Guard.com!
Сервис обеспечивает надежную защиту ваших веб-ресурсов: мониторинг доступности сайта, контроль валидности сертификатов, а также возможность собирать и анализировать логи работы сервера. My-Sites-Guard.com — всё для сохранности вашего сайта и спокойствия в работе!

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

Что такое контейнер Docker?

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

Основные преимущества контейнеров Docker:

  1. Портативность: Контейнеры содержат всё необходимое для работы приложения, что позволяет запускать его в разных средах без необходимости адаптации.
  2. Изоляция: Каждый контейнер изолирован от других, что предотвращает конфликты между приложениями и зависимостями.
  3. Лёгкость и быстрота: Контейнеры работают быстрее, чем виртуальные машины, так как не требуют полной эмуляции аппаратного обеспечения.
  4. Масштабируемость: Контейнеры можно легко масштабировать горизонтально, запуская несколько копий одного и того же приложения.

Как работает контейнер Docker?

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

При запуске контейнера Docker использует изоляцию на уровне операционной системы (через namespaces и cgroups в Linux) для создания окружения, изолированного от основной системы. Это даёт контейнерам возможность работать с минимальными накладными расходами и без необходимости эмулировать полное виртуальное оборудование, как это делают виртуальные машины.

Разница между контейнером и виртуальной машиной

Контейнеры часто сравниваются с виртуальными машинами, но они имеют несколько ключевых отличий:

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

Как установить Docker?

Прежде чем начать работу с контейнерами Docker, вам необходимо установить Docker на вашем компьютере.

Шаги для установки Docker:

  1. Перейдите на официальный сайт Docker: https://www.docker.com.
  2. Выберите нужную версию Docker для вашей операционной системы (Windows, macOS, Linux) и скачайте установочный файл.
  3. Следуйте инструкциям для установки Docker на вашу систему.
  4. После установки проверьте, что Docker работает, выполнив команду в терминале:
docker --version

Если Docker установлен правильно, вы увидите версию Docker, например:

Docker version 20.10.8, build 3967b7d

Как запустить контейнер Docker?

Теперь, когда Docker установлен, давайте разберёмся, как запустить контейнер на основе Docker-образа. Для этого вам понадобится образ, на основе которого будет создан контейнер.

Шаг 1: Поиск образа на Docker Hub

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

Для поиска образа вы можете зайти на Docker Hub и найти нужный вам образ. Например, если вы хотите запустить веб-сервер Nginx, просто найдите его на Docker Hub.

Шаг 2: Запуск контейнера

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

docker run nginx

Эта команда делает следующее:

  1. docker run — команда для запуска контейнера.
  2. nginx — имя образа, который будет использован для создания контейнера.

Если у вас ещё нет этого образа на локальной машине, Docker автоматически загрузит его с Docker Hub и запустит контейнер на его основе.

Шаг 3: Просмотр запущенных контейнеров

Чтобы увидеть список всех запущенных контейнеров, выполните команду:

docker ps

Вы увидите что-то вроде этого:

CONTAINER ID   IMAGE    COMMAND                 CREATED          STATUS          PORTS               NAMES
f1c9b9e8ddc9   nginx    "/docker-entrypoint.…"   30 seconds ago   Up 28 seconds   80/tcp              friendly_booth

Шаг 4: Остановка контейнера

Чтобы остановить запущенный контейнер, используйте команду docker stop, указав идентификатор контейнера или его имя:

docker stop f1c9b9e8ddc9

Шаг 5: Запуск контейнера с портами

Многие контейнеры используют порты для работы (например, веб-серверы). Чтобы сделать порт контейнера доступным на вашей машине, используйте флаг -p для проброса порта:

docker run -d -p 8080:80 nginx

Эта команда делает следующее:

  • -d — запускает контейнер в фоновом режиме (detached mode).
  • -p 8080:80 — пробрасывает порт 80 контейнера на порт 8080 хостовой машины. Теперь Nginx доступен по адресу http://localhost:8080.

Как создать свой контейнер Docker?

Чтобы создать свой контейнер Docker, вам нужно написать Dockerfile — сценарий, который описывает шаги для создания образа.

Пример простого Dockerfile для Node.js-приложения:

# Используем базовый образ Node.js
FROM node:14

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

# Копируем файл package.json и устанавливаем зависимости
COPY package*.json ./
RUN npm install

# Копируем исходный код
COPY . .

# Открываем порт 3000
EXPOSE 3000

# Запускаем приложение
CMD ["npm", "start"]

Шаг 1: Сборка Docker-образа

Чтобы создать образ на основе Dockerfile, выполните команду:

docker build -t my-node-app .
  • -t my-node-app — задаёт имя образа.
  • . — указывает на текущую директорию, где находится Dockerfile.

Шаг 2: Запуск контейнера

Запустите контейнер на основе созданного образа:

docker run -p 3000:3000 my-node-app

Теперь ваше приложение будет доступно по адресу http://localhost:3000.

Заключение

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

Комментарии

Пока нет комментариев

Добавить комментарий