Настройка среды разработки Docker на macOS или Windows

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

Введение

Docker стал незаменимым инструментом для разработчиков, позволяющим легко создавать и управлять контейнерными приложениями. Этот учебник проведет вас через процесс настройки среды разработки Docker на macOS или Windows, обеспечив вас необходимыми инструментами и знаниями для начала разработки и развертывания приложений на базе Docker.

Основы Docker

Что такое Docker?

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

Контейнеры Docker

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

graph LR
    A[Приложение] --> B[Зависимости]
    B --> C[Среда выполнения]
    C --> D[ОС]
    D --> E[Контейнер Docker]
    E --> F[Хост Docker]

Образы Docker

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

Реестр Docker

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

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

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

Компонент Описание
Клиент Docker Пользовательский интерфейс системы Docker. Он позволяет пользователям взаимодействовать с демоном Docker.
Демон Docker Фоновый процесс, который управляет контейнерами и образами Docker.
Реестр Docker Репозиторий для хранения и распространения образов Docker.
Сетевая инфраструктура Docker Позволяет контейнерам взаимодействовать друг с другом и с внешним миром.
Тома Docker Предоставляет способ сохранения данных, генерируемых и используемых контейнерами Docker.

Установка Docker на macOS или Windows

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

  1. Перейдите на сайт Docker и загрузите Docker Desktop для Mac.
  2. Запустите установщик и следуйте инструкциям на экране для завершения установки.
  3. После установки значок Docker появится в строке меню, указывая на то, что Docker запущен.

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

  1. Перейдите на сайт Docker и загрузите Docker Desktop для Windows.
  2. Запустите установщик и следуйте инструкциям на экране для завершения установки.
  3. После установки значок Docker появится в области уведомлений, указывая на то, что Docker запущен.

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

После установки Docker вы можете проверить её, открыв терминал (macOS) или PowerShell (Windows) и выполнив следующую команду:

docker version

Это отобразит версию клиента Docker и сервера Docker (демона), установленного на вашей системе.

Установка Docker Compose

Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Чтобы установить Docker Compose:

  1. Перейдите на репозиторий Docker Compose на GitHub и загрузите последнюю версию Docker Compose для вашей операционной системы.
  2. Сделайте загруженный файл исполняемым, выполнив следующую команду (для Linux/macOS):
    chmod +x docker-compose
    
  3. Переместите двоичный файл Docker Compose в каталог в пути вашей системы, например, /usr/local/bin/ или ~/bin/.

Теперь вы можете проверить установку, выполнив:

docker-compose version

Это отобразит версию Docker Compose, установленную на вашей системе.

Создание Docker-среды разработки

Создание Dockerfile

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

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Этот Dockerfile:

  1. Начинается с базового образа python:3.9-slim.
  2. Устанавливает рабочую директорию в /app.
  3. Копирует файл requirements.txt в рабочую директорию.
  4. Устанавливает зависимости Python, перечисленные в requirements.txt.
  5. Копирует код приложения в рабочую директорию.
  6. Указывает команду для запуска приложения (python app.py).

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

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

docker build -t my-python-app .

Это создаст Docker-образ с тэгом my-python-app.

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

Чтобы запустить Docker-контейнер из образа my-python-app, используйте следующую команду:

docker run -p 8080:8080 my-python-app

Это запустит новый контейнер и отобразит порт 8080 на хосте на порт 8080 в контейнере.

Разработка с Docker Compose

Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Вот пример файла docker-compose.yml для простого веб-приложения с базой данных:

version: "3"
services:
  web:
    build: .
    ports:
      - 8080:8080
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myapp
      POSTGRES_PASSWORD: secret
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Этот файл docker-compose.yml определяет две службы: web и db. Служба web создаёт Docker-образ из текущей директории и отображает порт 8080 на хосте на порт 8080 в контейнере. Служба db использует официальный образ PostgreSQL и настраивает базу данных для приложения.

Чтобы запустить приложение, выполните:

docker-compose up -d

Это запустит контейнеры web и db в фоновом режиме.

Резюме

Следуя этому руководству, вы научитесь устанавливать Docker на вашем компьютере macOS или Windows, освоите основы Docker и создадите среду разработки Docker, адаптированную к вашим потребностям. Эти навыки позволят вам оптимизировать рабочий процесс разработки и воспользоваться преимуществами Docker, такими как стабильные и воспроизводимые среды, простота развертывания и улучшенная масштабируемость.