Поиск по сайту
Ctrl + K
Вопросы по Docker

Что такое Docker Compose?

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

Основные понятия

  • Сервис — это отдельный компонент приложения (например, веб-сервер, БД).
  • Контейнер — это изолированная среда, в которой запускается ваш сервис.
  • Образ — это "шаблон", из которого создаются контейнеры.

Установка Docker Compose

Чтобы установить Docker Compose, вам сначала нужно установить Docker. После установки Docker вы можете установить Compose, следуя официальной документации.

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

Создадим простое веб-приложение на Node.js, которое использует MongoDB. Вам понадобятся следующие файлы:

  • Dockerfile (для приложения)
  • # Dockerfile
    FROM node:14
    
    WORKDIR /app
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    EXPOSE 3000
    CMD ["node", "app.js"]
    
  • docker-compose.yml (для конфигурации)
  • # docker-compose.yml
    version: '3'
    
    services:
      web:
        build: .
        ports:
          - "3000:3000"
        depends_on:
          - db
    
      db:
        image: mongo
        ports:
          - "27017:27017"
    
  • app.js (само Node.js приложение)
  • // app.js
    const express = require('express');
    const mongoose = require('mongoose');
    
    const app = express();
    const PORT = 3000;
    
    mongoose.connect('mongodb://db:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    app.listen(PORT, () => {
      console.log(`Server is running on http://localhost:${PORT}`);
    });
    

    Запуск приложения

    После того как все файлы созданы, в корневой директории вашего проекта выполните команду:

    docker-compose up
    

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

  • Скачает образ MongoDB, если он не был скачан ранее.
  • Построит образ вашего Node.js приложения.
  • Запустит оба контейнера (приложение и базу данных).
  • Теперь вы сможете открыть браузер и перейти по адресу http://localhost:3000, чтобы увидеть ваше приложение в действии.

    Заключение

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