Mistake on this page? Email us

Frequently asked questions

How can I create a container?

You can create an OCI container from a Docker container. The OCI documentation explains how to export a Docker container as a bare rootfs directory.

Can I create containers without using Docker?

If your development environment can't run Docker, you can try another container engine such as Podman.

Note We have not tested these solutions ourselves..

Where can I find more information about container configuration?

How can I give my container network access?

There are several ways to configure network access for an application. We'll review two:

If you need to extend other capabilities, see:

Here is an example of the changes we made to the Hello World config.json to allow pinging through the device network:

--- config.json	2019-04-26 10:41:12.300363606 +0100
+++ config.json.device-network	2019-04-26 14:21:45.003513809 +0100
@@ -18,7 +18,9 @@
 			"bounding": [
 				"CAP_AUDIT_WRITE",
 				"CAP_KILL",
-				"CAP_NET_BIND_SERVICE"
+				"CAP_NET_BIND_SERVICE",
+				"CAP_NET_RAW",
+				"CAP_NET_BROADCAST"
 			],
 			"effective": [
 				"CAP_AUDIT_WRITE",
@@ -33,7 +35,9 @@
 			"permitted": [
 				"CAP_AUDIT_WRITE",
 				"CAP_KILL",
-				"CAP_NET_BIND_SERVICE"
+				"CAP_NET_BIND_SERVICE",
+				"CAP_NET_RAW",
+				"CAP_NET_BROADCAST"
 			],
 			"ambient": [
 				"CAP_AUDIT_WRITE",
@@ -135,9 +139,6 @@
 				"type": "pid"
 			},
 			{
-				"type": "network"
-			},
-			{
 				"type": "ipc"
 			},
 			{

How can I package my container into an ipkg?

You must use the opkg build tool to produce a package suitable for installation on MBL.

You can either:

  • Download and install a version directly from Yocto
  • Use the version that we use in our Hello World tutorial. After you build Hello World, you can find a script called build-armv7 or build-arm64 in the helloworld directory. These scripts invoke a Docker container that contains the opkg-build tool.

To use opkg:

  1. Create a control file in a directory called CONTROL that describes the package. For example:

    Package: my-package
    Version: 1.0
    Architecture: any
    Maintainer: myemail@company.com
    Section: base
    Priority: optional
    Description: This package includes my application.
    

    Another example of this control file is included in the Hello World application. Debian documentation has more information about the control file fields.

  2. To build the package: In the directory that contains your root rootfs directory and your CONTROL directory, run:

    opkg-build -Z "xz" -g root -o root
    

    Note: Prepend the command with build-armv7 or build-arm64 when using the Hello World tool. For example build-armv7 opkg-build -Z "xz" -g root -o root

How can I debug container issues?

If you experience issues running your containerized application on your MBL device, you can:

  • To investigate issues with the rootfs or config.json: edit them, then run the application using the device's application lifecycle script (which you can run with the MBL CLI shell):

    mbl-app-lifecycle-manager -v run user-sample-app-package

  • Review the application logs in /var/log/app/user-sample-app-package.log, where user-sample-app-package is the name of your app.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.