diff --git a/site/weave-docker-api.md b/site/weave-docker-api.md index 8285d867..b0e3318a 100644 --- a/site/weave-docker-api.md +++ b/site/weave-docker-api.md @@ -11,43 +11,40 @@ or the [remote API](https://docs.docker.com/reference/api/docker_remote_api/). ### Attaching Containers to a Weave Network -There are three ways to attach containers to a Weave network (which method to use is +There are three ways to attach containers to a Weave network (which method to use is entirely up to you): -**1.** The Weave Net Docker API Proxy. See [Setting Up the Weave Net Docker API Proxy](#weave-api-proxy). +**1.** The Weave Net Docker API Proxy. See [Setting Up the Weave Net Docker API Proxy](#weave-api-proxy). -**2.** The Docker Network Plugin framework. The Docker Network Plugin is used when -Docker containers are started with the --net flag, for example: +**2.** The Docker Network Plugin framework. The Docker Network Plugin is used when +Docker containers are started with the --net flag, for example: `docker run --net ` -**Where,** +**Where,** - * `` are the [docker run options](https://docs.docker.com/engine/reference/run/) - you give to your container on start + * `` are the [docker run options](https://docs.docker.com/engine/reference/run/) + you give to your container on start Note that if a Docker container is started with the --net flag, then the Weave Docker API Proxy -is automatically disabled and is not used to attach containers. +is automatically disabled and is not used to attach containers. See [Integrating Docker via the Network Plugin](/site/plugin.md). **3.** Containers can also be attached to the Weave network with `weave attach` commands. This method also -does not use the Weave Docker API Proxy. +does not use the Weave Docker API Proxy. See [Dynamically Attaching and Detaching Containers](/site/using-weave/dynamically-attach-containers.md). ### 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`: +Docker daemon, and intercepts the communication between the two. +It is started along with the router and weaveDNS when you run: host1$ weave launch -or independently via `launch-proxy`: +**N.B.**: Prior to version 2.0, the `launch-proxy` command allowed to pass configuration options and to start the proxy independently. +This command has been removed in 2.0 and `launch` now also accepts configuration options for the 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 @@ -56,7 +53,7 @@ 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 + host1$ weave launch -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 @@ -81,14 +78,12 @@ 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 +The proxy can be stopped, along with the router and weaveDNS, with - host1$ weave stop-proxy - -or in conjunction with the router and weaveDNS via `stop`. + host1$ weave stop If you set your `DOCKER_HOST` to point at the proxy, you should revert -to the original settings prior to stopping the proxy. +to the original settings prior to running `stop`. **See Also** diff --git a/site/weave-docker-api/automatic-discovery-proxy.md b/site/weave-docker-api/automatic-discovery-proxy.md index f36563f8..d0ad1921 100644 --- a/site/weave-docker-api/automatic-discovery-proxy.md +++ b/site/weave-docker-api/automatic-discovery-proxy.md @@ -19,17 +19,17 @@ For those situations, the proxy provides the following flags: * `--hostname-from-label` * `--hostname-match ` * `--hostname-replacement ` - + When launching a container, the hostname is initialized to the value of the container label using key ``. If no `` was -provided, then the container name is used. +provided, then the container name is used. Additionally, the hostname is matched against a regular expression `` and based on that match, `` is used to obtain the final hostname, and then handed over to weaveDNS for registration. For example, you can launch the proxy using all three flags, as follows: - host1$ weave launch-router && weave launch-proxy --hostname-from-label hostname-label --hostname-match '^aws-[0-9]+-(.*)$' --hostname-replacement 'my-app-$1' + host1$ weave launch --hostname-from-label hostname-label --hostname-match '^aws-[0-9]+-(.*)$' --hostname-replacement 'my-app-$1' host1$ eval $(weave env) >**Note:** regexp substitution groups must be pre-pended with a dollar sign diff --git a/site/weave-docker-api/ipam-proxy.md b/site/weave-docker-api/ipam-proxy.md index 529c689a..f468ff10 100644 --- a/site/weave-docker-api/ipam-proxy.md +++ b/site/weave-docker-api/ipam-proxy.md @@ -25,18 +25,18 @@ To start a container without connecting it to the Weave network, pass If you do not want an IP to be assigned by default, the proxy needs to be passed the `--no-default-ipalloc` flag, for example: - host1$ weave launch-proxy --no-default-ipalloc + host1$ weave launch --no-default-ipalloc In this configuration, containers using no `WEAVE_CIDR` environment -variable are not connected to the Weave network. +variable are not connected to the Weave network. -Containers started with a `WEAVE_CIDR` environment variable are handled as before. +Containers started with a `WEAVE_CIDR` environment variable are handled as before. To automatically assign an address in this mode, start the container with a blank `WEAVE_CIDR`, for example: host1$ docker run -ti -e WEAVE_CIDR="" weaveworks/ubuntu - + **See Also** * [Address Allocation with IP Address Management (IPAM)](/site/ipam.md) - * [How to Manually Specify IP Addresses and Subnets](/site/using-weave/manual-ip-address.md) + * [How to Manually Specify IP Addresses and Subnets](/site/using-weave/manual-ip-address.md) diff --git a/site/weave-docker-api/name-resolution-proxy.md b/site/weave-docker-api/name-resolution-proxy.md index 3f02c7e3..60635ae1 100644 --- a/site/weave-docker-api/name-resolution-proxy.md +++ b/site/weave-docker-api/name-resolution-proxy.md @@ -9,7 +9,7 @@ When starting Weave Net enabled containers, the proxy automatically replaces the container's `/etc/hosts` file, and disables Docker's control over it. The new file contains an entry for the container's hostname and Weave Net IP address, as well as additional entries that have been -specified using the `--add-host` parameters. +specified using the `--add-host` parameters. This ensures that: @@ -27,9 +27,9 @@ IP instead of the Weave IP, or you require name resolution for Docker-managed networks), the proxy must be launched using the `--no-rewrite-hosts` flag. - host1$ weave launch-router && weave launch-proxy --no-rewrite-hosts - + host1$ weave launch --no-rewrite-hosts + **See Also** - * [Using Automatic Discovery With the Weave Proxy](/site/weave-docker-api/automatic-discovery-proxy.md) - + * [Using Automatic Discovery With the Weave Proxy](/site/weave-docker-api/automatic-discovery-proxy.md) + diff --git a/site/weave-docker-api/securing-proxy.md b/site/weave-docker-api/securing-proxy.md index 36a58cc2..feb9f26f 100644 --- a/site/weave-docker-api/securing-proxy.md +++ b/site/weave-docker-api/securing-proxy.md @@ -8,21 +8,21 @@ If you are [connecting to the docker daemon with TLS](https://docs.docker.com/articles/https/), you most likely want to do the same when connecting to the proxy. The proxy automatically detects the Docker daemon's TLS configuration, and -attempts to duplicate it. +attempts to duplicate it. In the standard auto-detection case you can launch a TLS-enabled proxy as follows: - host1$ weave launch-proxy + host1$ weave launch To disable auto-detection of TLS configuration, you can either pass the `--no-detect-tls` flag, or you can manually configure the proxy's TLS using the same TLS-related command-line flags supplied to the Docker -daemon. +daemon. For example, if you generated your certificates and keys into the Docker host's `/tls` directory, launch the proxy using: - host1$ weave launch-proxy --tlsverify --tlscacert=/tls/ca.pem \ + host1$ weave launch --tlsverify --tlscacert=/tls/ca.pem \ --tlscert=/tls/server-cert.pem --tlskey=/tls/server-key.pem The paths to your certificates and key must be provided as absolute diff --git a/site/weave-docker-api/using-proxy.md b/site/weave-docker-api/using-proxy.md index 228dd02d..aa46b0b5 100644 --- a/site/weave-docker-api/using-proxy.md +++ b/site/weave-docker-api/using-proxy.md @@ -5,13 +5,13 @@ search_type: Documentation --- -When containers are created via the Weave Net proxy, their entrypoint is +When containers are created via the Weave Net proxy, their entrypoint is modified to wait for the Weave network interface to become -available. +available. -When they are started via the Weave Net proxy, containers are +When they are started via the Weave Net proxy, containers are [automatically assigned IP addresses](/site/ipam.md) and connected to the -Weave network. +Weave network. ### Creating and Starting Containers with the Weave Net Proxy @@ -39,19 +39,19 @@ variable by space-separating them, as in The Docker NetworkSettings (including IP address, MacAddress, and IPPrefixLen), are still returned when `docker inspect` is run. If you want `docker inspect` to return the Weave NetworkSettings instead, then the -proxy must be launched using the `--rewrite-inspect` flag. +proxy must be launched using the `--rewrite-inspect` flag. This command substitutes the Weave network settings when the container has a Weave Net IP. If a container has more than one Weave Net IP, then the inspect call only includes one of them. - host1$ weave launch-router && weave launch-proxy --rewrite-inspect + host1$ weave launch --rewrite-inspect ### Multicast Traffic and Launching the Weave Proxy By default, multicast traffic is routed over the Weave network. To turn this off, for example, because you want to configure your own multicast -route, add the `--no-multicast-route` flag to `weave launch-proxy`. +route, add the `--no-multicast-route` flag to `weave launch`. ### Other Weave Proxy options @@ -61,6 +61,13 @@ route, add the `--no-multicast-route` flag to `weave launch-proxy`. * `--no-restart` -- remove the default policy of `--restart=always`, if you want to control start-up of the proxy yourself +### Disabling Weave Proxy + +If for some reason you need to disable the proxy, but still want to start other Weave Net components (router, weaveDNS), you can do so using: + + weave launch --proxy=false + + **See Also** * [Setting Up The Weave Docker API Proxy](/site/weave-docker-api.md) diff --git a/site/weavedns.md b/site/weavedns.md index e4f8eca4..a83e6fec 100644 --- a/site/weavedns.md +++ b/site/weavedns.md @@ -40,7 +40,7 @@ the hostname is not in the weaveDNS domain, the container is *not* registered, but it will still use weaveDNS for resolution. To disable an application container's use of weaveDNS, add the -`--without-dns` option to `weave launch-proxy`. To +`--without-dns` option to `weave launch`. To disable weaveDNS itself, launch weave with the `--no-dns` option. **See Also**