1 # OpenDaylight Docker Image
3 The `Dockerfile` in this directory can be used to construct a Docker
4 image for the OpenDaylight SDN controller. The currently supported
5 OpenDaylight version is [Helium SR3][1]. Note that Helium uses Karaf
6 to install features, and that the Docker image doesn't install any
7 features by default. You'll need to choose which features to install
8 based on your use-case.
10 ## Pre-Built Docker Image
12 A pre-built OpenDaylight Helium SR3 image is [available on DockerHub][2].
15 [~/sandbox]$ docker run -ti dfarrell07/odl:0.2.3 ./bin/karaf
16 # ODL's Docker image will be downloaded if needed
18 opendaylight-user@root>
21 ## Building ODL's Docker Image
23 To manually build a Docker image from the included `Dockerfile`:
26 [~/integration/packaging/docker]$ docker build -t dfarrell07/odl:0.2.3 .
27 [~/integration/packaging/docker]$ docker images | grep odl
28 dfarrell07/odl 0.2.3 af863ac2de74 3 days ago 523.5 MB
31 Replace the tag name with one of your own choosing.
35 To run commands against Dockerized OpenDaylight, use `docker run`. `WORKDIR`
36 is set to the root of ODL's install directory, `/opt/opendaylight`. Commands
37 passed to `docker run` should be relative to that path.
39 Additional information about running Docker images can be found [here][3].
43 The OpenDaylight Docker image opens the full set of ports known to be used
44 by OpenDaylight generally. For most real-world sets of installed Karaf
45 features, only a small subset of these ports will actually be used by
48 * 162 - SNMP4SDN (only when started as root)
54 * 2550 - ODL Clustering
55 * 2551 - ODL Clustering
56 * 2552 - ODL Clustering
58 * 4342 - Lisp Flow Mapping
60 * 5666 - ODL Internal clustering RPC
64 * 7800 - ODL Clustering
65 * 8000 - Java debug access
66 * 8080 - OpenDaylight web portal
68 * 8181 - MD-SAL RESTConf and DLUX
70 * 12001 - ODL Clustering
72 By default ports will be mapped to random ports on the host system. The
73 mappings can be discovered using the `docker ps` command.
75 If you wish to map these ports to specific ports on the host system, use
76 the `-p <host-port>:<container-port>` flag with `docker run`. Note that
77 [container linking][4] is generally recommend over hard-wiring ports with
81 [1]: http://www.opendaylight.org/software/downloads/helium-sr3
82 [2]: https://registry.hub.docker.com/u/dfarrell07/odl/
83 [3]: https://docs.docker.com/reference/run/
84 [4]: https://docs.docker.com/userguide/dockerlinks/