
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, 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.
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, 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.
Şimdi, bu iki temel bileşeni (PostgreSQL ve Adminer) nasıl tek bir komutla ayağa kaldıracağımıza bakalım.
Öncelikle, projeniz için bir klasör açın ve bu klasöre örneğin postgresqlwithdocker ismini verin.
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:POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB= # veritabani ismi
POSTGRES_PORT_HOST=5432 # default port
POSTGRES_ADMIN_PORT=8090 # adminer portu
ADMINER_DEFAULT_SERVER=dbdocker compose up -ddocker psEğer her şey yolundaysa, postgres-db ve adminer isimli iki konteynerin de Up (Çalışıyor) durumda olduğunu görmelisiniz.
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.

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