Tutorial: Deploy Dockerhub Image on IOx using Local Manager
In this tutorial, we will go through a quick start guide about how to deploy a Docker image on Dockerhub to IOx enabled Cisco Edge Compute device using inbuilt web sever called Local Manager.
Requirements
- PC/Laptop with connectivity to public Dockerhub registry
- Docker daemon up and running on PC/Laptop
Save Dockerhub Image
We will use nginx Docker image on Dockerhub for this tutorial. You can deploy any other Dockerhub image as needed for your desired platform's CPU architecture. Pulling the Docker image directly from an IOx enabled Cisco platform is not supported. Therefore, we need to pull the Docker image on PC/Laptop and save the Docker image as tar archive as shown below.
We have saved Dockerhub nginx Docker image as an nginx.tar archive on the local PC/Laptop.
Deploy Docker Image
We will have an IOx infra automatically generate a package descriptor (package.yaml) of the Docker app from the Docker image. Therefore, we don't need to create a package descriptor file (unless any custom changes are needed). Also, we don't have to convert the Docker image into an IOx package format.
Note: IOx infra by default sets up one container network interface for Docker images deployed without explicit package.yaml definition.
Use IOx Local Manager (LM) to deploy the saved Docker image tar archive as an IOx application. Ensure you have completed the following prerequisites for this step:
- The Cisco platform is configured as described under the respective Platform section
- The HTTPS server is accessible via the external interface.
On platforms running Cisco IOS-XE, access the LM at https://your-external-mgmt-ip-address/iox/login. For other platforms, access the LM at https://your-external-mgmt-ip-address:8443.
1. Upload Docker Image
We will use the Cisco IC3000 platform for deploying the nginx Docker application.

- Upload the saved nginx tar archive directly to LM.

- Verify that the nginx Docker app is uploaded to the device.

2. Allocate Runtime Resources and Start Container
Allocate resources such as CPU, memory, network, and disk for the Docker container by activating the app.
- Click the activate button on the nginx widget to view the resources available on the platform.

Available resources are different across Cisco platforms. Refer to section Platform Matrix for comparisons of resources available for IOx App hosting infra.
We can add or override a Docker container configuration (for example, environment variables, entry points, and so forth) by providing runtime options under Advance Settings->Docker Options. Specify options exactly how they will be used in the Docker run command, separated by spaces.
The networking configuration available for IOx apps is different across routing, switching, and computing platforms. Refer to the respective platform deployment guide here for how to configure external connectivity to the IOx application.
The IC3000 platform supports pre-configured internal private network (iox-docker-nat0), pre-configured management interface network (iox-bridge0), and data interfaces network for the applications.
Use an internal private network for nginx Docker app and expose the web server on a custom external tcp port 8080. Configure this external custom port mapping by clicking edit and then Port Mapping in the Network configuration section.
Select the custom radio button, and enter External TCP port as 8080. Click OK in Network configuration to complete network setup.

- Click Activate for allocating the configured resources to the nginx Docker app.

- Go back to the home page by clicking Applications in top tabs hierarchy, and start the nginx app.

