3.3 KiB
title, menu_order
| title | menu_order |
|---|---|
| Integrating Docker via the API Proxy | 50 |
The Docker API proxy automatically attaches containers to the Weave
network when they are started using the ordinary Docker
command-line interface
or the remote API,
instead of weave run.
###Attaching Containers to a Weave Network
There are two ways to attach containers to a Weave network,
the first uses the Weave Net Docker API Proxy, and is described in this section.
The other method uses the Docker Network Plugin framework. It’s your choice which method to use.
To use the Docker Network Plugin, launch Weave with the --net flag. Note that after you’ve launched Weave Net with this flag, then the Weave Docker API Proxy is automatically disabled.
For more information about using the Network Plugin, see Integrating Docker via the Network Plugin.
For more information about using the Weave Docker API proxy then read on.
###Setting Up The Weave Net Docker API Proxy
The proxy sits between the Docker client (command line or API) and the
Docker daemon, and intercepts the communication between the two. You can
start it simultaneously with the router and weaveDNS via launch:
host1$ weave launch
or independently via launch-proxy:
host1$ weave launch-router && weave launch-proxy
The first form is more convenient. But only launch-proxy can be passed configuration arguments.
Therefore if you need to modify the default behaviour of the proxy, you must use launch-proxy.
By default, the proxy decides where to listen based on how the
launching client connects to Docker. If the launching client connected
over a UNIX socket, the proxy listens on /var/run/weave/weave.sock. If
the launching client connects over TCP, the proxy listens on port
12375, on all network interfaces. This can be adjusted using the -H
argument, for example:
host1$ weave launch-proxy -H tcp://127.0.0.1:9999
If no TLS or listening interfaces are set, TLS is auto-configured based on the Docker daemon's settings, and the listening interfaces are auto-configured based on your Docker client's settings.
Multiple -H arguments can be specified. If you are working with a
remote docker daemon, then any firewalls in between need to be
configured to permit access to the proxy port.
All docker commands can be run via the proxy, so it is safe to adjust
your DOCKER_HOST to point at the proxy. Weave Net provides a convenient
command for this:
host1$ eval $(weave env)
host1$ docker ps
The prior settings can be restored with
host1$ eval $(weave env --restore)
Alternatively, the proxy host can be set on a per-command basis with
host1$ docker $(weave config) ps
The proxy can be stopped independently with
host1$ weave stop-proxy
or in conjunction with the router and weaveDNS via stop.
If you set your DOCKER_HOST to point at the proxy, you should revert
to the original settings prior to stopping the proxy.
See Also