diff options
author | David Bellotti <dbellotti@pivotal.io> | 2015-12-23 11:47:14 -0800 |
---|---|---|
committer | Gabe Rosenhouse <grosenhouse@pivotal.io> | 2015-12-23 11:47:14 -0800 |
commit | 921be8b633c081ebd2ce482bf77cbf097b7b30a2 (patch) | |
tree | 648781f7993277e0bf8cde6a1b51aaca825258d4 /libnetwork/README.md | |
parent | c8dcb0340d74c33f5542f41d331628da1788ad5b (diff) | |
download | docker-921be8b633c081ebd2ce482bf77cbf097b7b30a2.tar.gz |
Fix up example code
- runs to completion without error
- demonstrates info available when using bridge network driver
Closes #837
Signed-off-by: Gabe Rosenhouse <grosenhouse@pivotal.io>
Diffstat (limited to 'libnetwork/README.md')
-rw-r--r-- | libnetwork/README.md | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/libnetwork/README.md b/libnetwork/README.md index cebf96af25..3f10a0311c 100644 --- a/libnetwork/README.md +++ b/libnetwork/README.md @@ -15,6 +15,11 @@ There are many networking solutions available to suit a broad range of use-cases ```go +func main() { + if reexec.Init() { + return + } + // Select and configure the network driver networkType := "bridge" @@ -24,14 +29,14 @@ There are many networking solutions available to suit a broad range of use-cases genericOption[netlabel.GenericData] = driverOptions controller, err := libnetwork.New(config.OptionDriverConfig(networkType, genericOption)) if err != nil { - return + log.Fatalf("libnetwork.New: %s", err) } // Create a network for containers to join. // NewNetwork accepts Variadic optional arguments that libnetwork and Drivers can use. network, err := controller.NewNetwork(networkType, "network1") if err != nil { - return + log.Fatalf("controller.NewNetwork: %s", err) } // For each new container: allocate IP and interfaces. The returned network @@ -40,7 +45,7 @@ There are many networking solutions available to suit a broad range of use-cases // from the returned endpoint. ep, err := network.CreateEndpoint("Endpoint1") if err != nil { - return + log.Fatalf("network.CreateEndpoint: %s", err) } // Create the sandbox for the container. @@ -48,22 +53,29 @@ There are many networking solutions available to suit a broad range of use-cases sbx, err := controller.NewSandbox("container1", libnetwork.OptionHostname("test"), libnetwork.OptionDomainname("docker.io")) + if err != nil { + log.Fatalf("controller.NewSandbox: %s", err) + } // A sandbox can join the endpoint via the join api. err = ep.Join(sbx) if err != nil { - return + log.Fatalf("ep.Join: %s", err) } // libnetwork client can check the endpoint's operational data via the Info() API epInfo, err := ep.DriverInfo() - mapData, ok := epInfo[netlabel.PortMap] - if ok { - portMapping, ok := mapData.([]types.PortBinding) - if ok { - fmt.Printf("Current port mapping for endpoint %s: %v", ep.Name(), portMapping) - } + if err != nil { + log.Fatalf("ep.DriverInfo: %s", err) } + + macAddress, ok := epInfo[netlabel.MacAddress] + if !ok { + log.Fatalf("failed to get mac address from endpoint info") + } + + fmt.Printf("Joined endpoint %s (%s) to sandbox %s (%s)\n", ep.Name(), macAddress, sbx.ContainerID(), sbx.Key()) +} ``` ## Future |