Public Repository

Last pushed: 10 days ago
Short Description
GeoServer mapping container
Full Description

Supported Tags:

2.13,2.13.1,latest : GeoServer 2.13.1
(also 2.13.0)
2.12,2.12.3 : GeoServer 2.12.3
(also 2.12.0,2.12.1,2.12.2)
2.11,2.11.5 : GeoServer 2.11.5
(also 2.11.0,2.11.1,2.11.2,2.11.3,2.11.4)
2.10,2.10.4 : GeoServer 2.10.4
(also 2.10.0, 2.10.2. 2.10.3)
2.9,2.9.4 : GeoServer 2.9.4
(also 2.9.3)
2.8, 2.8.5 : GeoServer 2.8.5
2.8-nogwc, 2.8.5-nogwc : GeoServer 2.8.5 with GeoWebCache disabled

2.9.4 has been re-released with a patch to the imagemosaic functionality that fixes a bug that prevented some raster images from being symbolised as greyscale. Thanks to GeoSolutions for this patch! Versions 2.10.3+ include this fix.

All GeoServer docker images built with:

  • Tomcat 8.5
  • Java 8
  • GeoServer plugins: Inspire, Monitor, Control-Flow
  • 2.12.1+ and 2.11.3+ includes plugins: css, ysld

The following builds also include the UN OCHA fonts for humanitarian relief mapping (

The following builds also include Roboto fonts from google (

If you wish to build this container with your own preferred options, download the docker build files from our github repository:

Git repository:

It is recommended that Geoserver is run with an external geoserver_data directory mapped as a docker volume allowing the configuration to be persisted or shared with other instances. To create a running container with an external volume do:

mkdir -p ~/geoserver_data
docker run \
    --name=geoserver_8085 \
    -p 8085:8080 \
    -d \
    -v $HOME/geoserver_data:/opt/geoserver/data_dir \
    -e "GEOSERVER_LOG_LOCATION=/opt/geoserver/data_dir/logs/geoserver_8085.log" \
    -t thinkwhere/geoserver

For installations with multiple containers on the same machine, map port 8080 to a different port for each instance. It is recommended that the instance name contains the mapped port no for ease of reference. Also use a separate log file for each instance as shown in the example above.

Setting Tomcat properties

To set Tomcat properties such as maximum heap memory size, create a file such as:

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled"

Then pass the file as a volume at /usr/local/tomcat/bin/ when running:

docker run -d \
-v $HOME/tomcat/ \

Adapted from the container by Tim Sutton: kartoza/geoserver

Docker Pull Command