Published on

راهنمای نصب PostgreSQL از طریق Docker و نحوه ارتباط با آن

نویسندگان

راهنمای نصب PostgreSQL از طریق Docker و نحوه ارتباط با آن

استفاده از Docker برای اجرای PostgreSQL راهی سریع و ساده برای مدیریت پایگاه داده بدون نصب مستقیم آن روی سیستم است. در این مقاله به نصب PostgreSQL از طریق Docker و نحوه برقراری ارتباط با آن می‌پردازیم.


بخش اول: نصب PostgreSQL با Docker

۱. نصب Docker

اگر Docker را نصب ندارید، می‌توانید از دستورات زیر برای نصب آن استفاده کنید:

نصب Docker روی اوبونتو

sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

بررسی نسخه Docker

برای اطمینان از نصب صحیح:

docker --version

۲. اجرای PostgreSQL با Docker

دانلود ایمیج PostgreSQL

PostgreSQL را از Docker Hub دانلود کنید:

docker pull postgres:latest

اجرای کانتینر PostgreSQL

برای اجرای PostgreSQL در یک کانتینر Docker:

docker run --name postgres-container -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=mydatabase -p 5432:5432 -d postgres

در این دستور:

  • --name postgres-container: نام کانتینر.
  • POSTGRES_USER=myuser: نام کاربر PostgreSQL.
  • POSTGRES_PASSWORD=mypassword: رمز عبور کاربر.
  • POSTGRES_DB=mydatabase: نام پایگاه داده پیش‌فرض.
  • -p 5432:5432: نگاشت پورت محلی 5432 به پورت داخلی 5432 کانتینر.
  • -d: اجرای کانتینر در حالت پس‌زمینه.

۳. بررسی وضعیت کانتینر

برای مشاهده وضعیت کانتینر:

docker ps

خروجی شامل جزئیات کانتینر در حال اجرا است. اگر کانتینر PostgreSQL را نمی‌بینید، با دستور زیر لیست همه کانتینرها (حتی متوقف‌شده‌ها) را ببینید:

docker ps -a

بخش دوم: ارتباط با PostgreSQL در Docker

۱. اتصال به PostgreSQL از داخل کانتینر

برای ورود به کانتینر و استفاده از ابزار psql:

docker exec -it postgres-container psql -U myuser -d mydatabase

۲. اتصال از سیستم میزبان

می‌توانید از ابزارهای مختلف مانند psql، برنامه‌های مدیریت پایگاه داده (مانند pgAdmin)، یا زبان‌های برنامه‌نویسی برای اتصال استفاده کنید.

اتصال با psql از سیستم میزبان:

psql -h localhost -p 5432 -U myuser -d mydatabase

در اینجا:

  • -h localhost: آدرس میزبان.
  • -p 5432: شماره پورت.
  • -U myuser: نام کاربر.
  • -d mydatabase: نام پایگاه داده.

بخش سوم: دستورات مدیریتی با Docker

۱. مشاهده لاگ‌های کانتینر

برای بررسی لاگ‌های PostgreSQL:

docker logs postgres-container

۲. توقف کانتینر

برای متوقف کردن کانتینر:

docker stop postgres-container

۳. شروع دوباره کانتینر

برای راه‌اندازی مجدد کانتینر:

docker start postgres-container

۴. حذف کانتینر

برای حذف کانتینر PostgreSQL:

docker rm -f postgres-container

۵. حذف ایمیج PostgreSQL

اگر دیگر نیازی به ایمیج ندارید:

docker rmi postgres:latest

بخش چهارم: استفاده از Docker Compose

ایجاد فایل docker-compose.yml

یک فایل با نام docker-compose.yml ایجاد کنید و محتوای زیر را در آن قرار دهید:

version: '3.8'
services:
  postgres:
    image: postgres:latest
    container_name: postgres-container
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydatabase
    ports:
      - '5432:5432'
    volumes:
      - postgres-data:/var/lib/postgresql/data
volumes:
  postgres-data:

اجرای Docker Compose

برای راه‌اندازی سرویس PostgreSQL:

docker-compose up -d

برای متوقف کردن سرویس:

docker-compose down

بخش پنجم: بک‌آپ و بازیابی پایگاه داده در Docker

بک‌آپ پایگاه داده

برای گرفتن بک‌آپ از پایگاه داده:

docker exec -t postgres-container pg_dump -U myuser mydatabase > backup.sql

بازیابی پایگاه داده

برای بازیابی بک‌آپ:

cat backup.sql | docker exec -i postgres-container psql -U myuser -d mydatabase

جمع‌بندی

استفاده از Docker برای اجرای PostgreSQL، راهی ساده و منعطف برای مدیریت پایگاه داده است. با استفاده از این راهنما، می‌توانید PostgreSQL را از طریق Docker نصب کرده و با آن ارتباط برقرار کنید. اگر سؤالی داشتید، خوشحال می‌شوم کمک کنم!