Selamlar bu yazımda Docker ile PostgreSQL kurulumunu göstereceğim.
Yazı içerisinde;
- PostgreSQL kurarken girilmesi gereken environment parametrelerini
- Port ayarlamalarını
- Database içerisindeki bilgilerin saklanabilmesi için volume kavramını
ele alacağız.
Hazırsanız başlayalım.
İlk olarak bilgisayarınızda Docker kurulu olması gerekiyor, bu adımlardan bahsetmeyeceğim, terminal üzerinden direkt hızlıca kurulum yapalım.
Bunun için iki yöntem göstereceğim.
Docker run ile PostgreSQL ayağa kaldırma
Docker run ile terminal üzerinden ilgili parametreleri girerek direkt kurulum yapmamız mümkün.
Not: Sisteminizde daha önce PostgreSQL kurulu ise aşağıdaki portu 5433 ya da farklı bir kapı belirtmeniz gerekecektir.
Örnek olarak aşağıdaki kısmı -p 5433:5432
olarak değiştirebilirsiniz.
docker run -d \ --name postgres_db \ -e POSTGRES_USER="root" \ -e POSTGRES_PASSWORD="root" \ -e POSTGRES_DB="workshop" \ -v postgres_data:/var/lib/postgresql/data \ -p 5432:5432 \ postgres:13
-d | Detach mode’da çalışır, yani kurulum olsa da terminal kullanmaya devam edebilirsiniz |
–name | Ayağa kaldıracağımız conteinar için bir isim belirtiyoruz. |
-e POSTGRES_USER | PostgreSQL içerisindeki kullanıcı adı |
-e POSTGRES_PASSWORD | PostgreSQL içerisindeki kullanıcı şifresi |
-e POSTGRES_DB | PostgreSQL içerisinde oluşturulacak database adı |
-p 5432:5432 | PostgreSQL in hangi portta çalışacağını belirttiğimiz parametre. |
postgres:13 | Kullanacağımız PostgreSQL image adı |
-v postgres_data:/var/lib/postgresql/data | Volume parametresi. Bulunulan dizinde postgres_data klasörü oluşturur ve container ile eşler. |
Volume parametresi nedir?
Docker üzerinde ayağa kaldırdığımız uygulamaların verilerini kaydetmek adına volume ile mount işlemi yaparız.
Burada da bulunduğumuz dizin içerisinde postgres_data
klasörünü, container içerisindeki var/lib/postgresql/data
klasörüne eşitliyorum.
Yani container içerisindeki belirttiğim dizindeki tüm değişiklikler benim container dışarısındaki local dizinime de eş zamanlı olarak yansıyacak ya da belirttiğim local dizinimdeki değişiklik container içerisindeki mount edilen dizine yansıyacak.
PostgreSQ database kayıtlarını var/lib/postgresql/data
klasöründe tuttuğu için bu dizine mount işlemi uyguladık.
Docker Compose ile PostgreSQL Kurulumu
docker-compose.yaml
isimli bir dosya oluşturarak içerisini aşağıdaki şekilde düzenliyorum.
version: '3' services: pgdatabase: container_name: postgres_db image: postgres:13 environment: - POSTGRES_USER=root - POSTGRES_PASSWORD=root - POSTGRES_DB=workshop volumes: - "./pg_data:/var/lib/postgresql/data" ports: - "5433:5432"
oluşturduğum docker-compose dosyasıyla aynı dizinde docker-compose up -d
ile ayağa kaldırıyorum.
docker-compose up -d
Not: İlk işlemi yaptıktan sonra ikinci işlemi de denerseniz benzer container isimlerinden hata almanız olası.
Not: docker-compose ile yaptığımız işlemde de ilk başta 5432 ile kullandığımız portu değiştirerek 5433 yaptık.
Sisteminizde hali hazırda bir PostgreSQL kurulu ise bu şekilde yaparak farklı bir porttan kurulum yapabilirsiniz.
Pgcli ile PostgreSQL bağlanma:
pgcli -h localhost -u root -d workshop -p 5433
Oluşturduğumuz PostgreSQL’e başarılı bir şekilde bağlanabildik.
Bu yazımda
- Docker ile PostgreSQL kurulumunu
- Environment ve Port ayarlamalarını
- Volume kavramını
anlattım. Gelecek yazılarımda Python ve Pandas ile oluşturduğumuz bu PostgreSQL Database üzerinde işlemler yapacağız.
Sağlıcakla kalın.