Autostart a container on the VPU

Once the container has been transferred to the VPU, you can set up an autostart service to automatically run the containers as start-up. For auto-starting a container, Docker compose is used. The VPU already provides a service .config/systemd/user/oem-dc@.service which can be used for auto-starting a service: this is what we will use.

Docker compose

Generate a sample directory and a docker-compose.yml file at following destination: /usr/share/oem/docker/compose/. for example /usr/share/oem/docker/compose/jupyter/docker-compose.yml

This file should contain the information for starting the container you need.

Sample docker-compose.yml

The following docker-compose.yml file would create a service called jupyter, based on the image jupyter and bind the container ports 8888 to the host port 8888 on start.

version: "3.3"
services:
    jupyter:
        image: jupyter
        ports:
            - 8888:8888

Note: The Docker version on the VPU expects the docker-compose.yml to be either version 2.2 or 3.3. Fur further information refer to docker compose.

Start the container

A docker-compose.yml can be started via docker-compose up within the docker-compose.yml directory.

It is also possible to start the service with systemctl:

systemctl --user start oem-dc@jupyter

After a few seconds, the service should have started and it is possible to get the status of this service:

systemctl --user status oem-dc@jupyter

Another way of seeing all running container is docker ps.

Auto start the container after a reboot of the VPU

To restart the container automatically, simply enable the service:

systemctl --user enable oem-dc@jupyter

See Start the container on how to start the container with a docker-compose.yml file

Save data on consistently on the VPU with a container

TODO: move this section to a more appropriate chapter Coming soon

Data created and saved within a container is only available for the running instance of the container itself. Restarting the container leads to a loss of the previously saved data. Use volumes to avoid this scenario.