Jalankan Server PostGIS sebagai Kontainer Docker

Jalankan Server Postgis Sebagai Kontainer Docker



Tidak ada keraguan bahwa Docker telah menjadi salah satu alat pengembang yang paling banyak digunakan dalam beberapa tahun terakhir. Docker memungkinkan kita mengembangkan, mengemas, mengirimkan, dan menjalankan aplikasi di lingkungan terisolasi yang berisi semua dependensi yang diperlukan untuk menjalankan aplikasi.

PostGIS adalah perpanjangan dari database PostgreSQL yang menambahkan dukungan untuk objek data geografis. Hal ini memungkinkan kita menggunakan database PostgreSQL untuk menyimpan dan menanyakan data spasial. Seperti yang bisa Anda tebak, menggabungkan PostGIS dan Docker menyediakan metode yang efisien dan ekstensif dalam mengelola data spasial.

Dalam tutorial ini, kita akan mempelajari bagaimana kita dapat dengan cepat menyiapkan instance PostGIS di dalam container Docker. Kami juga akan membahas beberapa dasar PostGIS dan mempelajari cara memuat data spasial dan melakukan beberapa kueri dasar menggunakan container.







Persyaratan:

Untuk mengikuti tutorial ini, pastikan Anda memiliki yang berikut:



  1. Menginstal Docker Engine di sistem Anda. Anda dapat melihat tutorial kami tentang cara menginstal Docker di sistem target Anda.
  2. Pengetahuan dasar tentang PostgreSQL dan data spasial

Jika persyaratan yang diberikan terpenuhi, kita dapat melanjutkan ke tutorial.



Jalankan PostGIS di Docker

Mari kita lanjutkan dan siapkan container PostGIS. Kita mulai dengan menarik container PostGIS dari Docker Hub dengan perintah berikut:





$ buruh pelabuhan menarik postgis/postgis

Setelah gambar diunduh, kita dapat menjalankan container menggunakan gambar seperti yang ditunjukkan pada perintah berikut:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =kata sandi -d -p 5432:5432 postgis/postgis

Dalam perintah yang diberikan, kami menentukan parameter berikut:

  1. –name – Ini memungkinkan kita menentukan nama container.
  2. -e – Ini memungkinkan kita untuk mengatur kata sandi PostgreSQL sebagai variabel lingkungan. Ini adalah kata sandi yang digunakan untuk pengguna postgres.
  3. -d – Ini memberitahu Docker untuk menjalankan container di latar belakang atau mode terpisah.
  4. -p 5432:5432 – Ini memungkinkan kita memetakan port 5432 di dalam container ke host di port 5432.

Untuk memverifikasi bahwa kontainer sedang berjalan, gunakan perintah berikut:

$ buruh pelabuhan ps

Anda akan melihat container PostGIS terdaftar.

Muat Data Spasial di PostGIS

Sekarang setelah container PostGIS berjalan, kita dapat memuat data spasial menggunakan berbagai alat dan format seperti GeoJSON, CSV, dll.

Untuk kasus ini, kami menggunakan Shapefile seperti yang ditunjukkan pada perintah berikut:

$ mkdir -p ~/data
$cd~/data
dapatkan https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ buka zip ne_110m_admin_0_countries.zip

Pada perintah yang diberikan, kita mulai dengan membuat direktori untuk menyimpan data yang ingin kita muat. Kami kemudian mengunduh data geografis dari tautan yang ditentukan dan mengekstraknya ke dalam direktori.

Langkah selanjutnya adalah memuat data ke dalam database. Kita mulai dengan menghubungkan ke database PostgreSQL menggunakan perintah berikut:

$ docker exec -itu server postgis psql -U postgres -d postgres

Jika diminta kata sandi, berikan kata sandi yang Anda konfigurasikan saat menjalankan kontainer. Ini akan mengautentikasi Anda dan memasukkan Anda ke shell PostgreSQL.

Setelah terhubung ke database, kita dapat menggunakan utilitas “shp2pgsql” untuk mengimpor data dari Shapefile yang kita ekstrak pada langkah sebelumnya.

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

Pada perintah sebelumnya, kita menggunakan opsi -I untuk membuat indeks spasial agar kueri data spasial lebih cepat. Kami juga menentukan sistem koordinat sebagai 4326 menggunakan parameter -s. EPSG:4326 adalah sistem keadaan koordinat standar untuk WGS 84.

Data Kueri PostGIS

Setelah kita memuat data, kita dapat keluar dari utilitas PSQL dengan menjalankan perintah “\q” atau keluar.

Selanjutnya, untuk memverifikasi bahwa data kita telah dimuat, kita dapat menyambung kembali ke database dengan menjalankan perintah berikut:

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

Selanjutnya, Anda dapat menjalankan kueri spasial dasar untuk memverifikasi bahwa Anda telah menyimpan data.

Kesimpulan

Dalam tutorial ini, Anda mempelajari cara menjalankan server PostGIS sebagai container Docker dan memuat data ke dalam database.