Need help with docker-grand-ambassador?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

199 Stars 21 Forks Apache License 2.0 49 Commits 0 Opened issues

Services available


Need anything else?

Contributors list

# 24,744
49 commits

Docker Grand Ambassador Docker Build Status

This is a fully dynamic docker link ambassador.

For information on link ambassadors see:


The problem with linking is that links are static. When a container which is being linked to is restarted it very likely has a new IP address. Any container which is linked to this restarted container will also need to be restarted in order to pick up this new IP address. Therefore linked containers can often have a cascading effect of needing to restart many containers in order to update links.

Ambassadors are seen as a way to mitigate this, but as used in the example they are only marginally useful in a multi-host setup and much less useful in a single host scenario.


The solution will very likey be added in Docker at some point, but until that time, we need something a bit more dynamic.

Grand Ambassador reads all the exposed ports of the passed in container and creates a proxy for each of those ports on all interfaces in the ambassador.
Once the ambassador is started it will begin to monitor the Docker event stream for potential changes to these settings and adjust the proxy settings accordingly, without restarting the ambassador container.


docker run -d -v /var/run/docker.sock:/docker.sock \
  cpuguy83/docker-grand-ambassador \
  -name container_name \
  -sock /docker.sock
Usage of /usr/bin/grand-ambassador:
  -log-level="info": Set debug logging
  -name=[]: Name/ID of container to ambassadorize
  -sock="/var/run/docker.sock": Path to docker socket
  -tls=false: Enable TLS for connecting to Docker socket
  -tlscacert="/root/.docker/ca.pem": Path to TLS ca cert
  -tlscert="/root/.docker/cert.pem": Path to TLS cert
  -tlskey="/root/.docker/key.pem": Path to TLS key
  -tlsverify=false: Enable TLS verification of the Docker host
  -wait=true: Wait for container to be created if it doesn't exist on start


docker run -d --expose 6379 --name redis redis
docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
  --name redis_ambassador \
  cpuguy83/docker-grand-ambassador -name redis
docker run --rm --link redis_ambassador:db crosbymichael/redis-cli -h db ping


It's a proxy!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.