103news.com
Все новости
Декабрь
2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Использование Docker для разработки и тестирования приложений  Использование Docker для разработки и тестирования приложений

Использование Docker для разработки и тестирования приложений

Введение

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

Что такое Docker?

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

Основные компоненты Docker

  1. Docker Engine: Основной компонент, который управляет контейнерами.
  2. Docker Hub: Облачное хранилище для Docker-образов.
  3. Docker Compose: Инструмент для управления многоконтейнерными приложениями.
  4. Dockerfile: Текстовый факт, содержащий инструкции по сборке Docker-образа.

Установка Docker

Прежде чем начать использовать Docker, его нужно установить на ваш компьютер. Процесс установки зависит от операционной системы.

Установка на Windows

  1. Перейдите на официальный сайт Docker: Docker Desktop for Windows.
  2. Скачайте и установите Docker Desktop.
  3. Следуйте инструкциям мастера установки.

Установка на macOS

  1. Перейдите на официальный сайт Docker: Docker Desktop for Mac.
  2. Скачайте и установите Docker Desktop.
  3. Следуйте инструкциям мастера установки.

Установка на Linux

  1. Откройте терминал.
  2. Установите необходимые пакеты:
    sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release
  3. Добавьте официальный GPG-ключ Docker:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. Настройте репозиторий Docker:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Установите Docker Engine:
    sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

Основные команды Docker

После установки Docker, давайте рассмотрим основные команды, которые помогут вам начать работу.

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

Проверьте, что Docker установлен и работает:

docker --version

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

Запустите контейнер с образом hello-world:

docker run hello-world

Эта команда скачает образ hello-world из Docker Hub и запустит его. Вы увидите сообщение "Hello from Docker!".

Список контейнеров

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

docker ps

Остановка контейнера

Остановите контейнер:

docker stop <container_id>

Удаление контейнера

Удалите контейнер:

docker rm <container_id>

Создание Docker-образа

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

Пример Dockerfile

Создадим простой Dockerfile для Python-приложения.

  1. Создайте файл Dockerfile в корне вашего проекта.
  2. Добавьте следующие строки:
    # Используем официальный образ Python FROM python:3.9-slim # Устанавливаем рабочую директорию WORKDIR /app # Копируем текущую директорию в контейнер COPY . /app # Устанавливаем зависимости RUN pip install --no-cache-dir -r requirements.txt # Указываем команду для запуска приложения CMD ["python", "app.py"]

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

Соберите образ из Dockerfile:

docker build -t my-python-app .

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

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

docker run -d -p 5000:5000 my-python-app

Использование Docker Compose

Docker Compose позволяет управлять многоконтейнерными приложениями. Это особенно полезно для разработки и тестирования, когда ваше приложение состоит из нескольких сервисов.

Пример docker-compose.yml

Создадим файл docker-compose.yml для приложения, состоящего из веб-сервера и базы данных.

  1. Создайте файл docker-compose.yml в корне вашего проекта.
  2. Добавьте следующие строки:
    version: '3' services: web: build: . ports: - "5000:5000" depends_on: - db db: image: postgres:13 environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: mydatabase

Запуск Docker Compose

Запустите все сервисы, определенные в docker-compose.yml:

docker-compose up

Остановка Docker Compose

Остановите все сервисы:

docker-compose down

Примеры использования Docker в реальных проектах

Пример 1: Разработка веб-приложения

Представьте, что вы разрабатываете веб-приложение на Node.js. Вам нужно убедиться, что приложение работает одинаково на всех машинах разработчиков и в продакшн-среде.

  1. Создайте Dockerfile:
    FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "server.js"]
  2. Создайте docker-compose.yml:
    version: '3' services: web: build: . ports: - "3000:3000"
  3. Запустите приложение:
    docker-compose up

Пример 2: Тестирование микросервисов

Представьте, что у вас есть микросервисная архитектура с несколькими сервисами, которые взаимодействуют друг с другом. Вам нужно протестировать их взаимодействие.

  1. Создайте docker-compose.yml:
    version: '3' services: service1: build: ./service1 ports: - "5001:5001" service2: build: ./service2 ports: - "5002:5002" service3: build: ./service3 ports: - "5003:5003"
  2. Запустите все сервисы:
    docker-compose up
  3. Проведите тестирование взаимодействия между сервисами.

Заключение

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





Губернаторы России
Москва

Московское метро является знаковой культурной площадкой — Собянин





Москва

FT: Асад переправил почти две тонны евро и долларов в Москву в 2018-19 годах


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Собянин сообщил об открытии четырех станций на Троицкой линии до конца 2024 года



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Концерт

Концерт классической музыки прошел в центре московского долголетия «Левобережный»




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Героиней рубрики "Знай наших" во Всемирный день плавания стала инспектор отдела по взаимодействию со СМИ Главного управления Росгвардии по городу Москве капитан полиции Анастасия Волкова.

Росгвардейцы обеспечили правопорядок на международном баскетбольном матче в Москве

Серебро Большунова, доминирование Сливко и провал Бажина: чем завершились третьи этапы КР по лыжным гонкам и биатлону


Стэн Вавринка

Вавринка, Томлянович и Сэвилл получили wild card в основную сетку Australian Open



Новости Крыма на Sevpoisk.ru


Архангельск

Из Архангельска в Кисловодск: стартовал первый рейс поезда



Частные объявления в Вашем городе, в Вашем регионе и в России