The postgis
image provides a Docker container running Postgres 9 with
PostGIS 2.1 installed. This image is
based on the official postgres
image and provides variants for each version of Postgres 9 supported by the
base image (9.0-9.4).
On the version 9.1+ images, the PostGIS extension can be installed into your
database in the standard way via psql
:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
If you are using 9.0 or would otherwise prefer to use the older template database
mechanism for installing PostGIS, the image also provides a template_postgis
template
database with postgis.sql
, topology.sql
, and spatial_ref_sys.sql
loaded.
In order to run a basic container capable of serving a PostGIS-enabled database, start a container as follows:
docker run --name some-postgis -e POSTGRES_PASSWORD=mysecretpassword -d mdillon/postgis
For more detailed instructions about how to start and control your Postgres
container, see the documentation for the postgres
image
here.
Once you have started a database container, you can then connect to the database as follows:
docker run -it --link some-postgis:postgres --rm postgres \
sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'
Using the resulting psql
shell, you can create a PostGIS-enabled database by
using the CREATE EXTENSION
mechanism (or by using template_postgis
for Postgres 9.0):
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
See the PostGIS documentation for more details on your options for creating and using a spatially-enabled database.