Для запуска PostgreSQL в Docker я использую официальный образ 'postgres' с сайта https://hub.docker.com/_/postgres. Вы можете запустить его так, как описано в документации, но я предпочитаю использовать docker-compose. Для меня этот способ более гибкий и позволяет мне избежать ошибок при запуске из командной строки.
Для примера, вы можете использовать ниже приведенный код файла 'docker-compose.yml'
# A Docker Compose must always start with the version tag. # We use '3' because it's the last version. version: '3' services: # The name of our service is "database" database: # Official Postgres image from DockerHub (we use the last version) image: 'postgres:latest' ports: - 5432:5432 environment: POSTGRES_DB: "alex" POSTGRES_USER: "alex" POSTGRES_PASSWORD: "alex" PGDATA: "/var/lib/postgresql/data/pgdata" # The `volumes` tag allows us to share a folder with our container # Its syntax is as follows: [folder path on our machine]:[folder path to retrieve in the container] volumes: - ./db-data/:/var/lib/postgresql/data/ healthcheck: test: ["CMD-SHELL", "pg_isready -U alex -d alex"] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped
Сохраните этот файл в директории, а затем откройте его в консоли и введите
docker-compose -up
Он создаст контейнер и запустит его. Теперь вы можете подключиться к вашей базе данных через DBeaver или ваше приложение.
Вы также можете войти в консоль postgresql. Для этого выполните в консоли
docker ps
и получите идентификатор контейнера. Далее выполните
docker exec -it bc5aba4d82f8 bash
чтобы войти в консоль вашего докера. Там вы можете выполнить команду:
psql -U alex
и управлять вашей БД из командной строки.
Этот пример не использует переменных окружения. Он не защищен и может быть использован только для демонстрации или тестирования.