summaryrefslogtreecommitdiff
path: root/libnetwork/README.md
diff options
context:
space:
mode:
authorDavid Bellotti <dbellotti@pivotal.io>2015-12-23 11:47:14 -0800
committerGabe Rosenhouse <grosenhouse@pivotal.io>2015-12-23 11:47:14 -0800
commit921be8b633c081ebd2ce482bf77cbf097b7b30a2 (patch)
tree648781f7993277e0bf8cde6a1b51aaca825258d4 /libnetwork/README.md
parentc8dcb0340d74c33f5542f41d331628da1788ad5b (diff)
downloaddocker-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.md32
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