Docker – это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры – это унифицированные среды выполнения, которые позволяют запускать приложения в изолированной среде, что облегчает их разработку, тестирование и развертывание.
- Что такое Docker?
- Преимущества использования Docker
- Установка Docker на Ubuntu и Centos
- Установка необходимых зависимостей
- Добавление официального репозитория Docker
- Установка Docker
- Примеры развертывания контейнеров Docker
- Запуск контейнера с веб-приложением
- Создание образа на основе Dockerfile
- Использование Docker Compose для развертывания множества контейнеров
- Использование Docker Swarm для развертывания контейнеров в кластере
- Заключение
Что такое Docker?
Docker (оф сайт: https://www.docker.com/) использует технологию контейнеризации для упаковки приложений и их зависимостей в контейнеры, которые могут быть легко перенесены между различными компьютерами и средами. Контейнеры Docker могут содержать все необходимые компоненты для запуска приложения, такие как операционная система, языковые библиотеки, базы данных и другие зависимости.
Docker также предоставляет механизмы для автоматизации сборки, тестирования и развертывания приложений, что позволяет существенно упростить процесс разработки и доставки программного обеспечения. Благодаря своей гибкости и простоте в использовании, Docker стал одной из самых популярных платформ для контейнеризации приложений в мире.
Преимущества использования Docker
Использование Docker имеет ряд преимуществ, среди которых:
- Изоляция: контейнеры Docker обеспечивают изоляцию приложений и их зависимостей, что позволяет упростить процесс разработки, тестирования и развертывания.
- Переносимость: контейнеры Docker можно легко переносить между различными средами, такими как локальный компьютер, тестовый сервер или облачная платформа.
- Удобство: Docker предоставляет механизмы для автоматизации сборки, тестирования и развертывания приложений, что упрощает процесс разработки и доставки программного обеспечения.
- Эффективность: использование контейнеров Docker позволяет максимально эффективно использовать ресурсы сервера и уменьшить нагрузку на систему.
Установка Docker на Ubuntu и Centos
Установка Docker является простой и производится из стандартных репозиториев apt-get и yum в зависимости от операционной систему. Для установки Docker на Ubuntu 22.04 и Centos 8 необходимо выполнить следующие действия:
Установка необходимых зависимостей
На Ubuntu 22.04:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
На Centos 8:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Добавление официального репозитория Docker
На Ubuntu 22.04:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
На Centos 8:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Установка Docker
Выполним непосредственно установку Docker из репозитариев apt-get или yum в зависимости от Вашей операционной системы:
На Ubuntu 22.04:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
На Centos 8:
sudo yum install -y docker-ce docker-ce-cli containerd.io
На этом установка Docker на Ваш сервер завершена. Для проверки, Вам необходимо выполнить команду:
sudo docker run hello-world
Примеры развертывания контейнеров Docker
Контейнеризация приложений с помощью Docker позволяет легко развернуть и управлять приложениями в изолированных контейнерах. Вот несколько примеров того, как можно использовать Docker для развертывания контейнеров.
Запуск контейнера с веб-приложением
Поиск образа в Docker Hub:
docker search web-app
Загрузка образа:
docker pull web-app:latest
Запуск контейнера:
docker run -p 80:8080 --name my-web-app web-app:latest
Создание образа на основе Dockerfile
Dockerfile – это текстовый файл, который содержит инструкции по созданию образа Docker. Этот файл описывает, какие действия нужно выполнить для создания образа, включая установку зависимостей, настройку окружения, копирование файлов, запуск команд и т.д.Вот пример простого Dockerfile для создания образа с веб-приложением на базе Node.js:
# Использование образа Node.js версии 14.x в качестве основы FROM node:14 # Создание директории приложения WORKDIR /app # Установка зависимостей COPY package*.json ./ RUN npm install # Копирование файлов приложения в контейнер COPY . . # Определение команды для запуска приложения CMD [ "npm", "start" ] # Определение порта, который будет использоваться приложением EXPOSE 3000
Этот Dockerfile описывает следующие действия:
- Базовый образ: использование образа Node.js версии 14.x в качестве основы для создания нового образа.
- Создание директории приложения: создание новой директории /app внутри контейнера и установка ее в качестве рабочей директории для всех дальнейших команд.
- Установка зависимостей: копирование файла package.json и package-lock.json в контейнер и выполнение команды npm install для установки всех зависимостей приложения.
- Копирование файлов приложения: копирование всех файлов и директорий из текущего каталога (где находится Dockerfile) в контейнер в директорию /app.
- Определение команды для запуска приложения: определение команды npm start как команды, которая будет запускаться в контейнере при старте контейнера.
- Определение порта: определение порта 3000, который будет использоваться приложением внутри контейнера.
Чтобы создать образ на основе этого Dockerfile, необходимо выполнить команду docker build с указанием пути к каталогу, в котором находится Dockerfile:
docker build -t my-web-app:latest
Эта команда создаст новый образ с тегом my-web-app:latest на основе Dockerfile, который находится в текущем каталоге. Образ будет содержать все зависимости, необходимые для работы приложения, а также команду для запуска приложения при старте контейнера.
После создания образа можно запустить контейнер с помощью команды docker run:
docker run -p 80:8080 --name my-web-app my-web-app:latest
Использование Docker Compose для развертывания множества контейнеров
- Создание файла docker-compose.yml с описанием контейнеров.
- Запуск контейнеров:
docker-compose up -d
Использование Docker Swarm для развертывания контейнеров в кластере
- Инициализация Swarm:
docker swarm init
- Создание сервиса:
docker service create --name my-web-app --replicas 3 web-app:latest
Это всего лишь некоторые примеры того, как можно использовать Docker для развертывания контейнеров. В зависимости от ваших потребностей, вы можете использовать Docker для развертывания приложений любого типа и сложности, используя огромное количество готовых образов, которые предоставляются в Docker Hub.
Кроме того, Вам так же будет интересно ознакомиться с Git Hub и примерами его использования.
Заключение
Docker – это мощный инструмент для контейнеризации приложений, который обеспечивает изоляцию, переносимость, удобство и эффективность. Установка Docker на Ubuntu и Centos проста и занимает всего несколько шагов. С помощью Docker можно легко развернуть приложения в контейнерах, использовать Kubernetes для управления контейнерами и Docker Compose для развертывания множества контейнеров. Если вы не используете Docker, вы упускаете много возможностей для упрощения вашего процесса разработки, тестирования и развертывания приложений.