Контейнеры представляют собой легковесную форму виртуализации, которая позволяет запускать приложения и их зависимости в изолированных средах. В отличие от традиционных виртуальных машин (VM), которые требуют полноценной ОС для каждого экземпляра, контейнеры используют ядро хостовой ОС и изолируют процессы приложений. Это приводит к более быстрому времени запуска, снижению накладных расходов и улучшению эффективности использования ресурсов.
Преимущества контейнеров
- Портативность: Контейнеры инкапсулируют приложение и его зависимости, что позволяет легко перемещать их между различными средами (разработка, тестирование, производство) без проблем с совместимостью.
- Масштабируемость: Контейнеры можно легко масштабировать в зависимости от потребностей приложения.
- Изоляция: Контейнеры обеспечивают изоляцию процессов и файловой системы, гарантируя, что приложения не будут мешать друг другу.
- Согласованность: Контейнеры обеспечивают одинаковую работу приложения независимо от того, где оно развернуто, уменьшая проблемы типа "работает на моей машине".
Docker: ведущая платформа для контейнеров
Docker — популярная платформа, которая упрощает процесс создания, развертывания и управления контейнеризированными приложениями. Она предоставляет инструменты и утилиты для работы с контейнерами, включая Docker Engine для запуска контейнеров и Docker Hub для хранения и обмена образами контейнеров.
Настройка PostgreSQL на Docker
В этом руководстве мы проведем вас через шаги по настройке PostgreSQL на Docker, включая создание и управление контейнерами, томами и подключение к базе данных PostgreSQL.
Необходимые условия
- Система с менеджером пакетов yum (например, дистрибутив на основе RHEL).
- Права sudo для установки и настройки Docker.
Шаг 1: Установка Docker
Сначала нам нужно добавить репозиторий Docker и установить Docker на нашу систему.
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
Затем установите Docker и его компоненты:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Шаг 2: Запуск службы Docker
После установки запустите службу Docker и включите её автозапуск при загрузке системы.
sudo systemctl start docker
sudo systemctl enable docker
Шаг 3: Загрузка образа PostgreSQL Docker
Образы Docker — это предварительно упакованные среды, которые включают все необходимые зависимости для запуска приложения. Чтобы загрузить образ PostgreSQL с Docker Hub, используйте следующую команду:
docker pull postgres
Шаг 4: Создание тома Docker
Тома Docker используются для сохранения данных вне жизненного цикла контейнера. Мы создадим том для хранения данных PostgreSQL.
docker volume create cluster_postgres
Шаг 5: Запуск контейнера PostgreSQL Docker
Теперь запустим контейнер PostgreSQL, используя ранее загруженный образ. Также свяжем созданный том для сохранения данных.
docker run --name postgres_container -e POSTGRES_PASSWORD=test123 -d -p 5432:5432 -v cluster_postgres:/var/lib/postgresql/data postgres
В этой команде:
- --name postgres_container присваивает имя контейнеру.
- -e POSTGRES_PASSWORD=test123 устанавливает пароль для суперпользователя PostgreSQL.
- -d запускает контейнер в фоновом режиме.
- -p 5432:5432 отображает порт хоста 5432 на порт контейнера 5432.
- -v cluster_postgres:/var/lib/postgresql/data монтирует том Docker в каталог данных PostgreSQL внутри контейнера.
Шаг 6: Проверка работы контейнера
Чтобы убедиться, что контейнер PostgreSQL работает, используйте следующую команду:
docker ps