ip:port, no proto or scheme

Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Victor Vieux 2014-12-29 20:40:27 +00:00
parent d28dafa893
commit 429965c58d
5 changed files with 29 additions and 22 deletions

View File

@ -39,7 +39,7 @@ $ swarm create
$ swarm join --discovery token://<cluster_id> --addr=<node_ip:2375> $ swarm join --discovery token://<cluster_id> --addr=<node_ip:2375>
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery token://<cluster_id> -H=<swarm_ip:swarm_port> $ swarm manage --discovery token://<cluster_id> -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -50,7 +50,7 @@ $ docker -H <swarm_ip:swarm_port> logs ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery token://<cluster_id> $ swarm list --discovery token://<cluster_id>
http://<node_ip:2375> <node_ip:2375>
``` ```
See [here](discovery) for more information about See [here](discovery) for more information about

View File

@ -10,15 +10,15 @@ Discovery
```bash ```bash
# create a cluster # create a cluster
$ swarm create $ swarm create
6856663cdefdec325839a4b7e1de38e8 6856663cdefdec325839a4b7e1de38e8 # <- this is your unique <cluster_id>
# on each of your nodes, start the swarm agent # on each of your nodes, start the swarm agent
# <node_ip> doesn't have to be public (eg. 192.168.0.X), # <node_ip> doesn't have to be public (eg. 192.168.0.X),
# as long as the other nodes can reach it, it is fine. # as long as the other nodes can reach it, it is fine.
$ swarm join --discovery token://6856663cdefdec325839a4b7e1de38e8 --addr=<node_ip:2375> $ swarm join --discovery token://<cluster_id> --addr=<node_ip:2375>
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery token://6856663cdefdec325839a4b7e1de38e8 -H=<swarm_ip:swarm_port> $ swarm manage --discovery token://<cluster_id> -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -28,8 +28,8 @@ $ docker -H <swarm_ip:swarm_port> logs ...
... ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery token://6856663cdefdec325839a4b7e1de38e8 $ swarm list --discovery token://<cluster_id>
http://<node_ip:2375> <node_ip:2375>
``` ```
###### Using a static file describing the cluster ###### Using a static file describing the cluster
@ -38,10 +38,12 @@ http://<node_ip:2375>
# for each of your nodes, add a line to a file # for each of your nodes, add a line to a file
# <node_ip> doesn't have to be public (eg. 192.168.0.X), # <node_ip> doesn't have to be public (eg. 192.168.0.X),
# as long as the other nodes can reach it, it is fine. # as long as the other nodes can reach it, it is fine.
$ echo <node_ip:2375> >> /tmp/my_cluster $ echo <node_ip1:2375> >> /tmp/my_cluster
$ echo <node_ip2:2375> >> /tmp/my_cluster
$ echo <node_ip3:2375> >> /tmp/my_cluster
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery file:///tmp/my_cluster -H=<swarm_ip:swarm_port> $ swarm manage --discovery file:///tmp/my_cluster -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -52,7 +54,9 @@ $ docker -H <swarm_ip:swarm_port> logs ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery file:///tmp/my_cluster $ swarm list --discovery file:///tmp/my_cluster
http://<node_ip:2375> <node_ip1:2375>
<node_ip2:2375>
<node_ip3:2375>
``` ```
###### Using etcd ###### Using etcd
@ -64,7 +68,7 @@ http://<node_ip:2375>
$ swarm join --discovery etcd://<etcd_ip>/<path> --addr=<node_ip:2375> $ swarm join --discovery etcd://<etcd_ip>/<path> --addr=<node_ip:2375>
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery etcd://<etcd_ip>/<path> -H=<swarm_ip:swarm_port> $ swarm manage --discovery etcd://<etcd_ip>/<path> -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -75,7 +79,7 @@ $ docker -H <swarm_ip:swarm_port> logs ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery etcd://<etcd_ip>/<path> $ swarm list --discovery etcd://<etcd_ip>/<path>
http://<node_ip:2375> <node_ip:2375>
``` ```
###### Using consul ###### Using consul
@ -87,7 +91,7 @@ http://<node_ip:2375>
$ swarm join --discovery consul://<consul_addr>/<path> --addr=<node_ip:2375> $ swarm join --discovery consul://<consul_addr>/<path> --addr=<node_ip:2375>
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery consul://<consul_addr>/<path> -H=<swarm_ip:swarm_port> $ swarm manage --discovery consul://<consul_addr>/<path> -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -98,7 +102,7 @@ $ docker -H <swarm_ip:swarm_port> logs ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery consul://<consul_addr>/<path> $ swarm list --discovery consul://<consul_addr>/<path>
http://<node_ip:2375> <node_ip:2375>
``` ```
###### Using zookeeper ###### Using zookeeper
@ -110,7 +114,7 @@ http://<node_ip:2375>
$ swarm join --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> --addr=<node_ip:2375> $ swarm join --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> --addr=<node_ip:2375>
# start the manager on any machine or your laptop # start the manager on any machine or your laptop
$ swarm manage --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> -H=<swarm_ip:swarm_port> $ swarm manage --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> -H <swarm_ip:swarm_port>
# use the regular docker cli # use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info $ docker -H <swarm_ip:swarm_port> info
@ -121,7 +125,7 @@ $ docker -H <swarm_ip:swarm_port> logs ...
# list nodes in your cluster # list nodes in your cluster
$ swarm list --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path> $ swarm list --discovery zk://<zookeeper_addr1>,<zookeeper_addr2>/<path>
http://<node_ip:2375> <node_ip:2375>
``` ```
## Contributing ## Contributing

View File

@ -4,7 +4,6 @@ import (
"errors" "errors"
"fmt" "fmt"
"net/url" "net/url"
"strings"
log "github.com/Sirupsen/logrus" log "github.com/Sirupsen/logrus"
) )
@ -14,9 +13,6 @@ type Node struct {
} }
func NewNode(url string) *Node { func NewNode(url string) *Node {
if !strings.Contains(url, "://") {
url = "http://" + url
}
return &Node{url: url} return &Node{url: url}
} }

View File

@ -25,7 +25,7 @@ func TestRegister(t *testing.T) {
addrs, err := discovery.Fetch() addrs, err := discovery.Fetch()
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, len(addrs), 1) assert.Equal(t, len(addrs), 1)
assert.Equal(t, addrs[0].String(), "http://"+expected) assert.Equal(t, addrs[0].String(), expected)
assert.NoError(t, discovery.Register(expected)) assert.NoError(t, discovery.Register(expected))
} }

View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"strings"
"time" "time"
log "github.com/Sirupsen/logrus" log "github.com/Sirupsen/logrus"
@ -19,7 +20,13 @@ func join(c *cli.Context) {
log.Fatal(err) log.Fatal(err)
} }
if err := d.Register(c.String("addr")); err != nil { addr := c.String("addr")
addrParts := strings.SplitN(addr, ":", 2)
if len(addrParts) != 2 {
log.Fatal("--addr should be of the form ip:port")
}
if err := d.Register(addr); err != nil {
log.Fatal(err) log.Fatal(err)
} }