Unzip Nexalis Agent docker
Once you receive nexalis_agent_build_docker.zip, unzip it:config_docker_launcher.json— launch parameters (env, volume path, container name)docker_launcher.sh— helper script to run the containernexalis_agent_build_docker.tar— the Docker imagenexalis_agent_volume/— shared host directory for configs and logsVERSION
Install Docker
/app) mirrors the build: Agent scripts, gRPC_kafka/, connectors/, logs/, config.json.Host volume (
nexalis_agent_volume/) holds your editable configs and the logs:
Configure Nexalis Agent
In./nexalis_agent_volume, configure:
config.json(Nexalis Agent configuration)- Connector device models and certificates (e.g.,
connectors/opcua_connector/device_models,connectors/opcua_connector/certs, etc.) gRPC_kafka/config_gRPC_kafka.jsonlogs/(empty folder; log files will be created by the container)
config_docker_launcher.json. Use exactly one of the following valid JSON examples (remove any comments; JSON does not support # comments).
Configure config_docker_launcher.json
Option A — SASL_SSL (username/password)
Option B — mTLS (no SASL credentials)
- Pick a unique
NAME_DOCKER_CONTAINERper environment (e.g., staging vs. production). - You may use an absolute path for
NEXALIS_VOLUME_PATH. - Validate the file before running:
Launch container
docker, jq), checks the JSON config file, and ensures the volume path and image exist before starting the container.
It runs a docker run equivalent, ensuring the container runs in the background, restarts automatically if stopped, and mounts all required configs, certificates, and logs from the host volume into the container.
Operate container
Docker Linux install folders and file locations
Inside Docker, the Nexalis Agent is installed in/usr/local/nexalis-agent.
You can find the Dockerfile inside the image at /usr/local/nexalis-agent/Dockerfile
The data directory inside the container is /app.
When running with ./docker_launcher.sh then /app will be mounted to nexalis_agent_volume.
gRPC_kafka has its default directory inside nexalis_agent_volume/gRPC_kafka and connectors have their default directory inside nexalis_agent_volume/connectors.
For example, theIt contains:opcua_connectordefault directory isnexalis_agent_volume/connectors/opcua_connector. This is necessary to have a writable directory on a volume.
- device_models for configurations
- certs for configuration certificates
nexalis_agent_volume/gRPC_kafka/persistent_buffer.
It is created when gRPC_kafka is configured and running.
You can find the latest NexalisAgentService logs at nexalis_agent_volume/logs/nexalis_agent_service/NexalisAgentService.log
You can configure other logs connection for gRPC_kafka in their respective configurations.
If unconfigured, the default log location will be inside the connector data directory.
For example, for opcua connector the logs will be by default inside nexalis_agent_volume/connectors/opcua_connector.
Docker Linux commands
After configuringconfig_docker_launcher.json and running ./docker_launcher.sh (see steps above), inside the container (for example with Docker exec), you can run the following commands.
Inside Docker, you should always run commands with --socket-path SOCKETPATH.
gRPC_kafka-sasl-login command is not available in Docker.
You must use config_docker_launcher.json.
service-install/service-reset are not available inside container because there is no need for system service,
The Docker daemon already manages restarts and acts as a service.
Running those commands will complain about systemd not installed or running.
sending stop command
sending start command
sending restart command
sending status command
sending reload command
Reload works the same as in Windows. See reloadRunning Agent in Linux Balena
As in Docker, the executables are installed in/usr/local/nexalis-agent.
With Balena, you must set up Kafka username/password in the Balena web UI.
- KAFKA_SASL_USERNAME
- KAFKA_SASL_PASSWORD
--socket-path SOCKETPATH option.
In the Balena UI you can open a shell inside the container.
By selecting the agent container, you can then run the same commands as described in the Docker section.
Unlike Docker, Balena starts the agent unconfigured on first boot.
You can transfer files using FTP using the provided guide.
The default directory is the /app directory.