логотип PurpleSchool
логотип PurpleSchool

Развертывание MinIO в Docker

Автор

Олег Марков

Введение

Сегодня использование объектного хранилища становится неотъемлемой частью разработки и поддержки приложений. MinIO — это легкое, высокоэффективное распределенное объектное хранилище с открытым исходным кодом, полностью совместимое с Amazon S3 API. В этой статье мы посмотрим, как развернуть MinIO в контейнере Docker, чтобы сделать этот процесс максимально простым и удобным.

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

Установка Docker

Прежде чем мы начнем с MinIO, убедитесь, что Docker установлен и настроен на вашем сервере или локальной машине. Если у вас еще нет Docker, следуйте их официальным руководствам для установки на вашу операционную систему.

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

# Обновите индекс пакетов
sudo apt update

# Установите пакеты для использования репозитория apt по HTTPS
sudo apt install apt-transport-https ca-certificates curl software-properties-common

# Добавьте ключ GPG для официального репозитория Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Добавьте Docker репозиторий в источники APT
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Обновите индекс пакетов и установите Docker
sudo apt update
sudo apt install docker-ce

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

После установки Docker, вы можете проверить его работу:

# Проверить, что Docker запущен
sudo systemctl status docker

# Запустить тестовый контейнер
sudo docker run hello-world

Если контейнер hello-world выполнился успешно, значит, Docker установлен и работает корректно.

Развертывание MinIO

Теперь, когда у нас есть установленный и работающий Docker, можно приступать к развертыванию MinIO.

Скачать и развернуть контейнер MinIO

MinIO предоставляет официальный Docker-образ, который мы будем использовать для нашего развертывания. Давайте посмотрим, как это сделать.

# Создаем директорию для хранения данных MinIO
mkdir -p ~/minio/data

# Запускаем контейнер MinIO
docker run -p 9000:9000 --name minio -v ~/minio/data:/data -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=password" minio/minio server /data

Обратите внимание, что мы:

  • Прокинули порт 9000 для доступа к MinIO.
  • Установили переменные окружения для задания администратора и пароля.
  • Размонтировали локальную директорию для хранения данных, которые будут доступны внутри контейнера.

Доступ к панели управления MinIO

После старта контейнера MinIO доступен через веб-интерфейс. Откройте браузер и перейдите по адресу http://localhost:9000. Введите ранее заданные логин и пароль (например, admin и password), чтобы войти в систему.

Основные возможности MinIO

Теперь, когда у вас есть работающий инстанс MinIO, давайте обсудим его основные функции.

Интерфейс совместимости с S3

MinIO полностью совместим с Amazon S3 API. Это означает, что вы можете использовать существующие S3 клиентские библиотеки и инструменты для работы с MinIO. Это делает переход на MinIO довольно простым для тех, кто знаком с экосистемой AWS.

Облачное хранение и распределенные системы

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

Управление пользователями и политиками

С помощью MinIO вы можете создавать и управлять пользователями и назначать им различные роли и политики доступа, чтобы обеспечить безопасность данных. Управление правами доступа аналогично таковому в AWS IAM.

Теперь давайте сделаем обзор того, как вы можете добавить пользователей и управлять правами доступа.

Добавление пользователя

Используйте следующие команды в вашем MinIO-клиенте или через API для добавления пользователя:

mc admin user add myminio newuser newpassword
  • mc — это клиентская утилита MinIO.
  • myminio — это алиас вашего MinIO-сервера.
  • newuser и newpassword — это имя нового пользователя и его пароль.

Управление правами доступа

Вы можете управлять правами доступа с помощью политик:

mc admin policy add myminio readonly mypolicyfile.json
mc admin policy set myminio readonly user=newuser

Здесь мы создаем политику и назначаем ее пользователю, что ограничивает его права, например, только на чтение.

Заключение

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

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile