Conclusions:
At this point you have a known good IOx IR809 or IR829. You have just configured and verified the operation of loading and running a Cisco IOx Application. Your next step is to learn to build an IOx app yourself using the Docker toolchain and ioxclient, a free developer utility for application development.
Before proceeding to the initial tutorials, we need to cover a few small points.
If you would like to begin with a guided lab on DevNet virtual sandbox, it could be found here.
If you would like to continue with your physical device as your next step in tutorials, we need to introduce some basic application architecture concepts:
- An IOx Docker application that has been built using the Docker toolchain and has been converted to run on an IOx device. Please note that the Docker engine DOES NOT run on the IOx device.
Use this application style if you want, to package IOx app into multiple layers so that you can push and replace layers individually. This style also allows to reuse of layers for multiple applications. Initially, master copies of reusable layers get pushed to a "layer registry" when you use those layers the first time by pushing an application containing that layer. For example, a root filesystem, would be a good example of a layer that could be used by more than one application container. Another example might be a layer that contains libraries that are used by a particular programming language.
When you instantiate the first application, the rootfs simply gets copied from the layer registry to the new application container and then only the unique layers are pushed across the network, if this application is further upgraded.
When you instantiate the second application, the rootfs simply gets copied from the layer registry to the second application container and then only the unique layers are pushed across the network, thus conserving network bandwidth.
We will see a brief demonstration of this feature in the tutorial.
- A IOx LXC application that has been built using the Docker toolchain. This differs from the first case in that there is no layering. Use this model if your main goal is to save flash storage space on your device that would have been consumed by the layer registry and network bandwidth is not a concern.
Other differences exist that we will discuss in the individual tutorials.