PostGIS Sunucusunu Docker Konteyneri olarak çalıştırın

Postgis Sunucusunu Docker Konteyneri Olarak Calistirin



Hiç şüphe yok ki Docker son yıllarda en çok kullanılan geliştirici araçlarından biri haline geldi. Docker, uygulamaları, uygulamayı çalıştırmak için gereken tüm bağımlılıkları içeren yalıtılmış ortamlarda geliştirmemize, paketlememize, göndermemize ve çalıştırmamıza olanak tanır.

PostGIS, PostgreSQL veritabanının coğrafi veri nesnelerine destek ekleyen bir uzantısıdır. Bu, konumsal verileri depolamak ve sorgulamak için PostgreSQL veritabanını kullanmamıza olanak tanır. Tahmin edebileceğiniz gibi PostGIS ve Docker'ı birleştirmek, mekansal veriyi yönetmek için etkili ve kapsamlı bir yöntem sağlar.

Bu eğitimde, Docker konteynerinin içinde bir PostGIS örneğini hızlı bir şekilde nasıl kurabileceğimizi öğreneceğiz. Ayrıca bazı PostGIS temellerini ele alacağız ve konumsal verinin nasıl yükleneceğini ve kapsayıcıyı kullanarak bazı temel sorguların nasıl gerçekleştirileceğini öğreneceğiz.







Gereksinimler:

Bu öğreticiyi takip etmek için aşağıdakilere sahip olduğunuzdan emin olun:



  1. Docker Engine'i sisteminize yükledik. Docker'ı hedef sisteminize nasıl kuracağınıza dair eğitimlerimize göz atabilirsiniz.
  2. PostgreSQL ve konumsal veriler hakkında temel bilgi

Belirtilen gereksinimler karşılandığında eğitime devam edebiliriz.



PostGIS'i Docker'da çalıştırın

Devam edelim ve PostGIS konteynerini kuralım. PostGIS konteynerini Docker Hub'dan aşağıdaki komutla çekerek başlıyoruz:





$ liman işçisi postgis/postgis'i çekin

İmajı indirdikten sonra aşağıdaki komutta gösterildiği gibi konteyneri imajı kullanarak çalıştırabiliriz:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =şifre -d -p 5432:5432 postgis/postgis

Verilen komutta aşağıdaki parametreleri belirtiyoruz:

  1. –name – Bu, konteynerin adını belirtmemize olanak tanır.
  2. -e – Bu, PostgreSQL şifresini ortam değişkeni olarak ayarlamamızı sağlar. Bu postgres kullanıcısı için kullanılan şifredir.
  3. -d – Bu, Docker'a konteyneri arka planda veya bağımsız modda çalıştırmasını söyler.
  4. -p 5432:5432 – Bu, konteynerin içindeki 5432 numaralı bağlantı noktasını 5432 numaralı bağlantı noktasındaki ana bilgisayarla eşlememizi sağlar.

Kapsayıcının çalıştığını doğrulamak için aşağıdaki komutu kullanın:

$ liman işçisi ps

PostGIS kapsayıcısının listelendiğini görmelisiniz.

Uzamsal Verileri PostGIS'e Yükleme

Artık PostGIS kapsayıcısını çalıştırdığımıza göre, konumsal verileri GeoJSON, CSV vb. gibi çeşitli araçları ve formatları kullanarak yükleyebiliriz.

Bu durumda aşağıdaki komutlarda gösterildiği gibi bir Shapefile kullanıyoruz:

$ mkdir -p ~/veri
$ cd ~/veri
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ zip'i aç ne_110m_admin_0_countries.zip

Verilen komutlarda yüklemek istediğimiz verileri saklayacak bir dizin oluşturarak başlıyoruz. Daha sonra belirtilen bağlantıdan bir coğrafi veri indirip dizine çıkarıyoruz.

Bir sonraki adım, verileri veritabanına yüklemektir. Aşağıdaki komutu kullanarak PostgreSQL veritabanına bağlanarak başlıyoruz:

$ docker exec -it postgis-sunucu psql -U postgres -d postgres

Parola istenirse kapsayıcıyı çalıştırırken yapılandırdığınız parolayı girin. Bu, kimliğinizi doğrulamalı ve sizi PostgreSQL kabuğuna bırakmalıdır.

Veritabanına bağlandıktan sonra, önceki adımlarda çıkardığımız Shapefiles'taki verileri içe aktarmak için “shp2pgsql” yardımcı programını kullanabiliriz.

postgres=# shp2pgsql -I -s 4326 ne_110m_admin_0_countries | psql -U postgres -d postgres

Önceki komutta, konumsal verilerin daha hızlı sorgulanabilmesi için konumsal indeks oluşturmak amacıyla -I seçeneğini kullanıyorduk. Koordinat sistemini de -s parametresini kullanarak 4326 olarak belirtiyoruz. EPSG:4326, WGS 84 için standart koordinat durumu sistemidir.

PostGIS Sorgu Verileri

Verileri yükledikten sonra “\q” komutunu çalıştırarak PSQL yardımcı programından çıkabilir veya çıkabiliriz.

Daha sonra, verilerin yüklendiğini doğrulamak için aşağıdaki komutu çalıştırarak veritabanına yeniden bağlanabiliriz:

$ docker exec -it postgis-container psql -U postgres -d postgres

Daha sonra, verilerin sizde kayıtlı olduğunu doğrulamak için temel uzamsal sorguları çalıştırabilirsiniz.

Çözüm

Bu eğitimde PostGIS sunucusunu Docker konteyneri olarak nasıl çalıştıracağınızı ve verileri veritabanına nasıl yükleyeceğinizi öğrendiniz.