How to use database with docker?

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=db3) Konteynerleri Başlatın
docker compose up -d3) 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 psEğ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:
PostgreSQLSunucu:
db(Ya da.envdosyasındakiADMINER_DEFAULT_SERVERdeğeri)Kullanıcı Adı:
.envdosyasındakiPOSTGRES_USERdeğeriParola:
.envdosyasındakiPOSTGRES_PASSWORDdeğeriVeritabanı:
.envdosyasındakiPOSTGRES_DBdeğ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.

