datapath-windows: Append flow attribute key
[cascardo/ovs.git] / INSTALL.Docker.md
index 2956036..9e14043 100644 (file)
@@ -2,10 +2,9 @@ How to Use Open vSwitch with Docker
 ====================================
 
 This document describes how to use Open vSwitch with Docker 1.2.0 or
-later.  This document assumes that you followed [INSTALL](INSTALL.md)
-or installed Open vSwitch from distribution packaging such as a .deb
-or .rpm.  Consult www.docker.com for instructions on how to install
-Docker.
+later.  This document assumes that you installed Open vSwitch by following
+[INSTALL.md] or by using the distribution packages such as .deb or .rpm.
+Consult www.docker.com for instructions on how to install Docker.
 
 Limitations
 -----------
@@ -14,7 +13,9 @@ one cannot use the Docker client to automatically add a container's
 network interface to an Open vSwitch bridge during the creation of the
 container.  This document describes addition of new network interfaces to an
 already created container and in turn attaching that interface as a port to an
-Open vSwitch bridge.
+Open vSwitch bridge.  If and when there is a native integration of Open vSwitch
+with Docker, the ovs-docker utility described in this document is expected to
+be retired.
 
 Setup
 -----
@@ -54,9 +55,13 @@ and then attaches it to the Open vSwitch bridge 'br-int'.  This is done by
 creating a veth pair.  One end of the interface becomes 'eth1' inside the
 container and the other end attaches to 'br-int'.
 
-The script also lets one to add an IP address to the interface.  e.g.:
+The script also lets one to add IP address, MAC address, Gateway address and
+MTU for the interface.  e.g.:
 
-`% ovs-docker add-port br-int eth1 $CONTAINER_ID 192.168.1.1/24`
+```
+% ovs-docker add-port br-int eth1 $CONTAINER_ID --ipaddress=192.168.1.2/24 \
+--macaddress=a2:c3:0d:49:7f:f8 --gateway=192.168.1.1 --mtu=1450
+```
 
 * A previously added network interface can be deleted.  e.g.:
 
@@ -74,8 +79,22 @@ and del-port[s] commands.
 
 Once a container interface is added to an Open vSwitch bridge, one can
 set VLANs, create Tunnels, add OpenFlow rules etc for more network control.
+Many times, it is important that the underlying network infrastructure is
+plumbed (or programmed) before the application inside the container starts.
+To handle this, one can create a micro-container, attach an Open vSwitch
+interface to that container, set the UUIDS in OVSDB as mentioned in
+[IntegrationGuide.md] and then program the bridge to handle traffic coming out
+of that container. Now, you can start the main container asking it
+to share the network of the micro-container. When your application starts,
+the underlying network infrastructure would be ready. e.g.:
+
+```
+% docker run -d --net=container:$MICROCONTAINER_ID ubuntu:14.04 /bin/sh -c \
+"while true; do echo hello world; sleep 1; done"
+```
+
 Please read the man pages of ovs-vsctl, ovs-ofctl, ovs-vswitchd,
-ovsdb-server ovs-vswitchd.conf.db etc for more details.
+ovsdb-server and ovs-vswitchd.conf.db etc for more details about Open vSwitch.
 
 Docker networking is quite flexible and can be used in multiple ways.  For more
 information, please read:
@@ -85,3 +104,6 @@ Bug Reporting
 -------------
 
 Please report problems to bugs@openvswitch.org.
+
+[INSTALL.md]:INSTALL.md
+[IntegrationGuide.md]:IntegrationGuide.md