diff --git a/swarm/README-short.txt b/swarm/README-short.txt new file mode 100644 index 000000000..0e3c180d3 --- /dev/null +++ b/swarm/README-short.txt @@ -0,0 +1 @@ +Swarm: a Docker-native clustering system. diff --git a/swarm/content.md b/swarm/content.md new file mode 100644 index 000000000..3a83b9186 --- /dev/null +++ b/swarm/content.md @@ -0,0 +1,69 @@ +# Swarm: a Docker-native clustering system + +%%LOGO%% + +`swarm` is a simple tool which controls a cluster of Docker hosts and exposes it +as a single "virtual" host. + +`swarm` uses the standard Docker API as its frontend, which means any tool which +speaks Docker can control swarm transparently: dokku, fig, krane, flynn, deis, +docker-ui, shipyard, drone.io, Jenkins... and of course the Docker client itself. + +Like the other Docker projects, `swarm` follows the "batteries included but removable" +principle. It ships with a simple scheduling backend out of the box, and as initial +development settles, an API will develop to enable pluggable backends. The goal is +to provide a smooth out-of-box experience for simple use cases, and allow swapping +in more powerful backends, like `Mesos`, for large scale production deployments. + +# Example usage + +```bash +# create a cluster +$ docker run --rm swarm create +6856663cdefdec325839a4b7e1de38e8 # <- this is your unique + +# on each of your nodes, start the swarm agent +# doesn't have to be public (eg. 192.168.0.X), +# as long as the swarm manager can access it. +$ docker run -d swarm join --addr= token:// + +# start the manager on any machine or your laptop +$ docker run -t -p :2375 -t swarm manage token:// + +# use the regular docker cli +$ docker -H tcp:// info +$ docker -H tcp:// run ... +$ docker -H tcp:// ps +$ docker -H tcp:// logs ... +... + +# list nodes in your cluster +$ docker run --rm swarm list token:// + +``` + +See [here](https://github.com/docker/swarm/blob/master/discovery/README.md) for +more information about other discovery services. + +## Advanced Scheduling + +See [filters] +(https://github.com/docker/swarm/blob/master/scheduler/filter/README.md) and +[strategies] +(https://github.com/docker/swarm/blob/master/scheduler/strategy/README.md) +to learn more about advanced scheduling. + +## TLS + +Swarm supports TLS authentication between the CLI and Swarm but also between +Swarm and the Docker nodes. + +In order to enable TLS, the same command line options as Docker can be specified: + +`swarm manage --tlsverify --tlscacert= --tlscert= --tlskey= [...]` + +Please refer to the [Docker documentation](https://docs.docker.com/articles/https/) +for more information on how to set up TLS authentication on Docker and generating +the certificates. + +Note that Swarm certificates must be generated with`extendedKeyUsage = clientAuth,serverAuth`. diff --git a/swarm/license.md b/swarm/license.md new file mode 100644 index 000000000..1154718e5 --- /dev/null +++ b/swarm/license.md @@ -0,0 +1,2 @@ +View [license information](https://github.com/docker/swarm/blob/master/LICENSE) +for the software contained in this image. diff --git a/swarm/logo.png b/swarm/logo.png new file mode 100644 index 000000000..e96af6ad5 Binary files /dev/null and b/swarm/logo.png differ