KEYnote 42 English - Fall 2021 - Page 7


CodeMeter Support for Docker

CodeMeter Version 7.30 introduced a number of new features to improve the experience of working with protected applica- tions in container systems like Docker . With the changes , CodeMeter now stays true to the basic principle of “ one container , one application ” and also includes a special form of binding for CmActLicenses in Docker containers .
On conventional operating systems , CodeMeter works according to a simple rule : the CodeMeter functions built into an application ’ s protection will find the necessary CodeMeter license server on the same system . But this straightforward setup is broken when working with Docker or similar container-based systems . An application running in one container could never find the CodeMeter license server in another container . The solution : Just create an additional network .
The CodeMeter network The CodeMeter network needs to be connected with all containers involved , and all containers need to know the address of the container storing the CodeMeter license server . This is done by configuring the CODEMETER _ HOST variable , which the CodeMeter libraries can read to make contact with the CodeMeter license server . The connection is treated by the license server as a local , not a network connection , which means that the license server can also use licenses that are made available by another host with CodeMeter as a network server .
How could this work in practice ? Imagine an application that adds an effect to an image file . For every image that the user wants to process , a new container is set up with the protected image processing application as its entry point and with the image data and all relevant parameters as parameters . Each copy of the image processing application and each container is closed again once the job is done and the image altered . This means that if multiple images are processed at the same time , multiple containers will also exist in parallel . If the image processing app needs a CodeMeter license to run , it will contact the CodeMeter license server defined in its configuration and use up one license . When the application is closed , the license will be released again . In the normal run of things , there would be one container with the CodeMeter license server that all active copies of the image processing application would use .
A separate container is also used for all Code- Meter-specific interactions with the Code- Meter license server , like running a ( single ) CodeMeter WebAdmin or using the cmu command line tool to load licenses or list license information . The sample configuration provided by Wibu-Systems uses the same image as the container with CodeMeter license server does , but with other entry points .
Bound licenses Another important innovation for Docker is the introduction of a new type of binding for CmActLicenses . The normal procedure for CmActLicenses is that they check certain hardware traits of the target system when they are created . These are then combined by the patented SmartBind process to form a clever
Container : CodeMeter License Server
Named Volume
CodeMeter Network
Container : Application + CodeMeter Library
Container : Application + CodeMeter Library
Container : CodeMeter WebAdmin