“Docker helps developers build, share, run, and verify applications anywhere — without tedious environment configuration or management.” — docker.com
Important prerequisite information
NOTE: Docker requires a Secure Shell (SSH) license and some familiarity with Linux and command line container management. If you are uncomfortable with these elements, this may not be the right approach for you.
Docker is only available via shell access on groov firmware 4.0.0+
Everything that applies to development with SSH also applies to Docker and containerization on groov devices.
Find out more about SSH access on the main SSH developer page.
WARNING: Be mindful of system resources when loading containers. All system resources, such as CPU cycles, RAM, internal storage, etc., must be split between onboard software applications, such as your chosen control runtime, groov View, Ignition, Node-RED, Data Services, other shell programs, and any other software running on the device.
Running “heavy” containers or too many containers will cause severe drops in system performance or risk cratering your device. Be mindful of how much you load onto the system. Be aware that some containers have very aggressive drive activity that can reduce the lifetime of the built-in SSD.
Note that docker-compose is not currently supported.
Any container you run will be power fail-safe.
Any container you run will require reinstalling and reconfiguring after a firmware update, just like any modification done with shell access.
Note that your groov device must be configured with a valid gateway to the internet to install the Docker Engine and any containers from Docker Hub.
CAUTION: Before updating groov EPIC firmware, be sure you back up any files or applications you have created, including files you import and download, as they will be deleted during the update. In addition, be aware that when you update EPIC firmware, your software package installation and setup will not be restored. After updating the firmware, you will need to repeat the steps in these guides.
Support
Since this is a shell-only option, support is limited to the Opto 22 community. A new category has been created on the Opto 22 forums to discuss this feature and share tips, tricks, etc.
Container compatibility
Containers are constricted by the hardware they are running on. In the case of groov EPIC PR1, PR2, and RIO devices, only containers built for 32-bit ARM v7 are compatible.
You must select the right container code base to match the device hardware that you intend to run the container on.