Browse Source

Merge pull request #151 from aluzzardi/swarm

Add swarm
yosifkit 10 years ago
parent
commit
3b6118c6ec
6 changed files with 185 additions and 0 deletions
  1. 1 0
      swarm/README-short.txt
  2. 112 0
      swarm/README.md
  3. 69 0
      swarm/content.md
  4. 2 0
      swarm/license.md
  5. BIN
      swarm/logo.png
  6. 1 0
      update.sh

+ 1 - 0
swarm/README-short.txt

@@ -0,0 +1 @@
+Swarm: a Docker-native clustering system.

+ 112 - 0
swarm/README.md

@@ -0,0 +1,112 @@
+# Supported tags and respective `Dockerfile` links
+
+- [`0.1.0-rc3`, `latest` (*Dockerfile*)](https://github.com/docker/swarm-library-image/blob/c0f8204b2a1bb34233cd2144df51a4de9572440c/Dockerfile)
+
+For more information about this image and its history, please see the [relevant
+manifest file
+(`library/swarm`)](https://github.com/docker-library/official-images/blob/master/library/swarm)
+in the [`docker-library/official-images` GitHub
+repo](https://github.com/docker-library/official-images).
+
+# Swarm: a Docker-native clustering system
+
+![logo](https://raw.githubusercontent.com/docker-library/docs/master/swarm/logo.png)
+
+`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 <cluster_id>
+
+# on each of your nodes, start the swarm agent
+#  <node_ip> 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=<node_ip:2375> token://<cluster_id>
+
+# start the manager on any machine or your laptop
+$ docker run -t -p <swarm_port>:2375 -t swarm manage token://<cluster_id>
+
+# use the regular docker cli
+$ docker -H tcp://<swarm_ip:swarm_port> info
+$ docker -H tcp://<swarm_ip:swarm_port> run ...
+$ docker -H tcp://<swarm_ip:swarm_port> ps
+$ docker -H tcp://<swarm_ip:swarm_port> logs ...
+...
+
+# list nodes in your cluster
+$ docker run --rm swarm list token://<cluster_id>
+<node_ip:2375>
+```
+
+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=<CACERT> --tlscert=<CERT> --tlskey=<KEY> [...]`
+
+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`.
+
+# License
+
+View [license information](https://github.com/docker/swarm/blob/master/LICENSE)
+for the software contained in this image.
+
+# Supported Docker versions
+
+This image is officially supported on Docker version 1.5.0.
+
+Support for older versions (down to 1.0) is provided on a best-effort basis.
+
+# User Feedback
+
+## Issues
+
+If you have any problems with or questions about this image, please contact us
+ through a [GitHub issue](https://github.com/docker/swarm-library-image/issues).
+
+You can also reach many of the official image maintainers via the
+`#docker-library` IRC channel on [Freenode](https://freenode.net).
+
+## Contributing
+
+You are invited to contribute new features, fixes, or updates, large or small;
+we are always thrilled to receive pull requests, and do our best to process them
+as fast as we can.
+
+Before you start to code, we recommend discussing your plans 
+through a [GitHub issue](https://github.com/docker/swarm-library-image/issues), especially for more ambitious
+contributions. This gives other contributors a chance to point you in the right
+direction, give you feedback on your design, and help you find out if someone
+else is working on the same thing.

+ 69 - 0
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 <cluster_id>
+
+# on each of your nodes, start the swarm agent
+#  <node_ip> 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=<node_ip:2375> token://<cluster_id>
+
+# start the manager on any machine or your laptop
+$ docker run -t -p <swarm_port>:2375 -t swarm manage token://<cluster_id>
+
+# use the regular docker cli
+$ docker -H tcp://<swarm_ip:swarm_port> info
+$ docker -H tcp://<swarm_ip:swarm_port> run ...
+$ docker -H tcp://<swarm_ip:swarm_port> ps
+$ docker -H tcp://<swarm_ip:swarm_port> logs ...
+...
+
+# list nodes in your cluster
+$ docker run --rm swarm list token://<cluster_id>
+<node_ip:2375>
+```
+
+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=<CACERT> --tlscert=<CERT> --tlskey=<KEY> [...]`
+
+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`.

+ 2 - 0
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.

BIN
swarm/logo.png


+ 1 - 0
update.sh

@@ -50,6 +50,7 @@ declare -A otherRepos=(
 	[r-base]='https://github.com/rocker-org/rocker'
 	[registry]='https://github.com/docker/docker-registry'
 	[rethinkdb]='https://github.com/stuartpb/rethinkdb-dockerfiles'
+	[swarm]='https://github.com/docker/swarm-library-image'
 	[thrift]='https://github.com/ahawkins/docker-thrift'
 	[ubuntu-debootstrap]='https://github.com/tianon/docker-brew-ubuntu-debootstrap'
 	[ubuntu-upstart]='https://github.com/tianon/dockerfiles'