Uruchom serwer PostGIS jako kontener Docker

Uruchom Serwer Postgis Jako Kontener Docker



Nie ma wątpliwości, że Docker stał się w ostatnich latach jednym z najczęściej używanych narzędzi programistycznych. Docker pozwala nam opracowywać, pakować, dostarczać i uruchamiać aplikacje w izolowanych środowiskach, które zawierają wszystkie zależności wymagane do uruchomienia aplikacji.

PostGIS jest rozszerzeniem bazy danych PostgreSQL, które dodaje obsługę obiektów danych geograficznych. Dzięki temu możemy używać bazy danych PostgreSQL do przechowywania i wysyłania zapytań o dane przestrzenne. Jak można się domyślić, połączenie PostGIS i Dockera zapewnia wydajną i rozbudowaną metodę zarządzania danymi przestrzennymi.

W tym samouczku dowiemy się, jak szybko skonfigurować instancję PostGIS w kontenerze Docker. Omówimy także podstawy PostGIS i dowiemy się, jak załadować dane przestrzenne i wykonać kilka podstawowych zapytań przy użyciu kontenera.







Wymagania:

Aby skorzystać z tego samouczka, upewnij się, że posiadasz następujące elementy:



  1. Zainstalowano Docker Engine w Twoim systemie. Możesz zapoznać się z naszymi tutorialami dotyczącymi instalacji Dockera w systemie docelowym.
  2. Podstawowa znajomość PostgreSQL i danych przestrzennych

Po spełnieniu podanych wymagań możemy kontynuować tutorial.



Uruchom PostGIS w Dockerze

Przejdźmy dalej i skonfigurujmy kontener PostGIS. Zaczynamy od pobrania kontenera PostGIS z Docker Hub za pomocą następującego polecenia:





$ docker pull postgis/postgis

Po pobraniu obrazu możemy uruchomić kontener przy użyciu obrazu, jak pokazano w następującym poleceniu:



$ docker run --name postgis-server -e POSTGRES_PASSWORD =hasło -d -p 5432:5432 postgis/postgis

W podanym poleceniu podajemy następujące parametry:

  1. –name – Pozwala nam określić nazwę kontenera.
  2. -e – Pozwala nam ustawić hasło PostgreSQL jako zmienną środowiskową. To jest hasło używane przez użytkownika Postgres.
  3. -d – To mówi Dockerowi, aby uruchomił kontener w tle lub w trybie odłączonym.
  4. -p 5432:5432 – pozwala nam zmapować port 5432 wewnątrz kontenera na hosta na porcie 5432.

Aby sprawdzić, czy kontener działa, użyj następującego polecenia:

$ okno dokowane ps

Powinieneś zobaczyć kontener PostGIS na liście.

Załaduj dane przestrzenne do PostGIS

Teraz, gdy mamy uruchomiony kontener PostGIS, możemy załadować dane przestrzenne przy użyciu różnych narzędzi i formatów, takich jak GeoJSON, CSV itp.

W tym przypadku używamy pliku Shapefile, jak pokazano w następujących poleceniach:

$ mkdir -p ~/dane
$cd ~/dane
wget https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip
$ rozpakuj plik ne_110m_admin_0_countries.zip

W podanych poleceniach zaczynamy od utworzenia katalogu do przechowywania danych, które chcemy załadować. Następnie pobieramy dane geograficzne z określonego łącza i wyodrębniamy je do katalogu.

Kolejnym krokiem jest załadowanie danych do bazy danych. Zaczynamy od połączenia się z bazą danych PostgreSQL za pomocą następującego polecenia:

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

Jeśli zostanie wyświetlony monit o hasło, podaj hasło skonfigurowane podczas uruchamiania kontenera. To powinno Cię uwierzytelnić i przenieść do powłoki PostgreSQL.

Po podłączeniu do bazy danych możemy użyć narzędzia „shp2pgsql” do zaimportowania danych z plików Shapefiles, które wyodrębniliśmy w poprzednich krokach.

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

W poprzednim poleceniu użyliśmy opcji -I, aby utworzyć indeks przestrzenny w celu szybszego wyszukiwania danych przestrzennych. Określamy również układ współrzędnych jako 4326 za pomocą parametru -s. EPSG:4326 to standardowy układ stanów współrzędnych dla WGS 84.

Dane zapytania PostGIS

Po załadowaniu danych możemy wyjść z narzędzia PSQL, uruchamiając polecenie „\q” lub wychodząc.

Następnie, aby sprawdzić, czy mamy załadowane dane, możemy ponownie połączyć się z bazą danych, uruchamiając następującą komendę:

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

Następnie możesz uruchomić podstawowe zapytania przestrzenne, aby sprawdzić, czy masz zapisane dane.

Wniosek

W tym samouczku nauczyłeś się, jak uruchomić serwer PostGIS jako kontener Docker i załadować dane do bazy danych.