Details about how to use Kong in Docker can be found on the DockerHub repository hosting the image: kong. We also have a Docker Compose template with built-in orchestration and scalability.

Here is a quick example showing how to link a Kong container to a Cassandra or PostgreSQL container:

  1. Start your database

    If you wish to use a Cassandra container:

    $ docker run -d --name kong-database \
                  -p 9042:9042 \
                  cassandra:3
    

    If you wish to use a PostgreSQL container:

    $ docker run -d --name kong-database \
                  -p 5432:5432 \
                  -e "POSTGRES_USER=kong" \
                  -e "POSTGRES_DB=kong" \
                  postgres:9.4
    
  2. Prepare your database

    Run the migrations with an ephemeral Kong container:

    $ docker run --rm \
        --link kong-database:kong-database \
        -e "KONG_DATABASE=postgres" \
        -e "KONG_PG_HOST=kong-database" \
        -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
        kong:latest kong migrations up
    

    In the above example, both Cassandra and PostgreSQL are configured, but you should update the KONG_DATABASE environment variable with either cassandra or postgres.

    Note: migrations should never be run concurrently; only one Kong node should be performing migrations at a time.

  3. Start Kong

    When the migrations have run and your database is ready, start a Kong container and link it to your database container, just like the ephemeral migrations container:

    $ docker run -d --name kong \
        --link kong-database:kong-database \
        -e "KONG_DATABASE=postgres" \
        -e "KONG_PG_HOST=kong-database" \
        -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
        -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
        -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
        -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
        -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
        -p 8000:8000 \
        -p 8443:8443 \
        -p 8001:8001 \
        -p 8444:8444 \
        kong:latest
    
  4. Use Kong

    Kong is running:

    $ curl -i http://localhost:8001/
    

    Quickly learn how to use Kong with the 5-minute Quickstart.


Having Trouble? We're Here to Help!

Keep up with the latest features