Docker ile PostgreSQL ve Adminer'i Tek Bir Dosya ile Ayağa Kaldırma Rehberi

Merhaba, ben Cem Levent Avcı. Bu dokümantasyon, Docker Compose kullanarak PostgreSQL veritabanını ve pgAdmin yönetim arayüzünü tek bir dosya ile hızlıca ayağa kaldırma sürecini adım adım açıklamaktadır.

Docker Nedir?

Docker, uygulamaları bağımlılıklarıyla birlikte paketleyerek izole bir ortamda (konteynerler içinde) çalıştırmayı sağlayan bir platformdur. Amacı, uygulamanın bir ortamdan diğerine tutarlı bir şekilde taşınabilmesini sağlamaktır.

  • Bir konteyner, uygulamanın çalışması için gereken tüm kodları, çalışma zamanı ortamını, sistem araçlarını ve kütüphaneleri içeren hafif ve bağımsız bir pakettir.

  • Bu sayede "Benim bilgisayarımda çalışıyordu!" sorununu ortadan kaldırır ve geliştirme ile üretim ortamları arasındaki uyumsuzlukları en aza indirir.

PosgreSQL Nedir?

PostgreSQL, güçlü, açık kaynaklı ve gelişmiş bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Yüksek performans, ölçeklenebilirlik, veri bütünlüğü ve karmaşık sorguları yönetme yeteneği ile bilinir.

  • Güvenilirlik ve özellik zenginliği nedeniyle büyük ölçekli uygulamalardan küçük projelere kadar geniş bir kullanım alanına sahiptir.

  • SQL dilini kullanır ve ACID (Atomicity, Consistency, Isolation, Durability) prensiplerine sıkı sıkıya bağlıdır.

Adminer Nedir?

Adminer, tıpkı phpMyAdmin gibi, veritabanlarını web arayüzü üzerinden yönetmek için tasarlanmış minimalist bir araçtır. Tek bir PHP dosyasından oluşmasıyla dikkat çeker ve birçok farklı veritabanı türünü (MySQL, PostgreSQL, SQLite, Oracle, vb.) destekler.

Nasıl Yapılır?

Şimdi, bu iki temel bileşeni (PostgreSQL ve Adminer) nasıl tek bir komutla ayağa kaldıracağımıza bakalım.

1) Klasör Yapısını Oluşturun

Öncelikle, projeniz için bir klasör açın ve bu klasöre örneğin postgresqlwithdocker ismini verin.

2) Konfigürasyon Dosyalarını Oluşturun

docker-compose.yml dosyası

version: '3.9'
services:
  db:
    image: postgres:15
    container_name: postgres-db
    restart: always
    env_file:
      - .env
    ports:
      - "${POSTGRES_PORT_HOST:-5432}:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

  adminer:
    image: adminer
    restart: always
    environment:
      ADMINER_DEFAULT_SERVER: ${ADMINER_DEFAULT_SERVER:-db}
    ports:
      - "${POSTGRES_ADMIN_PORT:-8090}:8080"

volumes:
  pgdata:

.env dosyası:

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB= # veritabani ismi
POSTGRES_PORT_HOST=5432 # default port
POSTGRES_ADMIN_PORT=8090 # adminer portu
ADMINER_DEFAULT_SERVER=db

3) Konteynerleri Başlatın

docker compose up -d

3) Komut işlendikten sonra konteynerlerin başarılı bir şekilde çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu girin:

docker ps

Eğer her şey yolundaysa, postgres-db ve adminer isimli iki konteynerin de Up (Çalışıyor) durumda olduğunu görmelisiniz.

5) Adminer Aracılığıyla Veritabanına Erişin

http://localhost:8090/
  • Sistem: PostgreSQL

  • Sunucu: db (Ya da .env dosyasındaki ADMINER_DEFAULT_SERVER değeri)

  • Kullanıcı Adı: .env dosyasındaki POSTGRES_USER değeri

  • Parola: .env dosyasındaki POSTGRES_PASSWORD değeri

  • Veritabanı: .env dosyasındaki POSTGRES_DB değeri

Giriş butonuna basarak veritabanınıza erişim sağlayabilir, tablolarınızı oluşturabilir ve yönetebilirsiniz.

Veya DBeaver Gibi Bir Masaüstü Aracı Kullanarak Erişin:

  • Dbeaver'ı https://dbeaver.io/download/ linkinden erişerek indirip bilgisayarınıza kurunuz.

  • Uygulama açıldıktan sonra Connect Your Database kısmından bağlanacağınız veritabanı türünü (PostgreSQL) seçiniz ve Next butonuna tıklayınız.

  • Bundan sonra açılan sayfada jdbc url sini aşağıdaki formatta kendinize göre düzenleyiniz:

    jdbc:postgresql://localhost:5432/{your_db_name}?user={POSTGRES_USER}&password={POSTGRES_PASSWORD}
  • Finish butonuna basınız. Veritabanı tablolarını ve diğer detayları açılan bağlantıdan görüntüleyebilirsiniz.

Yazıyı okuduğunuz için teşekkür ederim! Umarım Docker ile PostgreSQL ve Adminer'ı hızlıca ayağa kaldırma hakkında verdiğim bu pratik bilgiler size faydalı olmuştur. Geliştirme süreçlerinizi hızlandırmak için bu tarz Docker ipuçlarını kullanmayı unutmayın.

Her türlü soru, geri bildirim veya proje işbirliği için benimle iletişime geçmekten çekinmeyin. Teknoloji, yazılım ve otomasyon konularında fikir alışverişi yapmak, yeni projeler hakkında konuşmak benim için her zaman çok değerli.

Bana aşağıdaki kanallardan ulaşabilirsiniz:

  • E-posta: cemlevent54@gmail.com

  • LinkedIn: linkedin.com/in/leventavci54

  • GitHub: github.com/cemlevent54

  • Kişisel Web Sitesi: https://cemleventavci.com.tr Portföyümü ve yaptığım projeleri görmek için ziyaret edebilirsiniz.

Yazar

Cem Levent

Cem Levent

Yazılım geliştirme, teknoloji ve kişisel deneyimlerim hakkında yazıyorum.