Install a node on Docker


Docker version 1.12.0 or higher is required. This can be checked with the docker --version command:

$ docker --version
Docker version 1.12.0, build 8eab29e

For more information about installing Docker, see


Image load

Upload your docker image, for example,  DecisionInsight_2.0.0_Install_docker_BNXXXXXXXXXX.tar.gz  to your server and load it into the docker local image registry using the docker load command. The image loading can be verified with the command docker images:

$ docker load -i DecisionInsight_2.0.0_Install_docker_BNXXXXXXXXXX.tar.gz
$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
axway/decisioninsight   XXXXXXXX-XX         4061a75db719        3 minutes ago       215.9 MB

Container creation

To create the container, the following information is required:

  • The Decision Insight image name to be used, for example axway/decisioninsight:XXXXXXXX-XX.
  • The container name, which is a unique identifier for the Docker node, for example  adi_ XXXXXXXX-XX .
  • The host port on which the container HTTP port should be exposed, eg 18080.

Create the container using the docker create command. The required information is filled in this command line, then verify the container creation using the docker ps command.

The --pids-limit argument prevents fork bombs by restricting the number of forks that can happen inside a container at a given time. --pids-limit must be at least 65536.

By default, CPU time is equally divided between containers. CPU sharing enables prioritizing one container over the other. Every new container will have 1024 shares of CPU by default. Use the --cpu-shares argument (e.g: --cpu-shares 512 to use 50% of what the other containers use).

$ docker create --tty --interactive --volume /opt/adi/node --publish 18080:8080 --read-only --pids-limit 65536 --cpu-shares 512 --name adi_XXXXXXXX-XX axway/decisioninsight:XXXXXXXX-XX
$ docker ps -a
CONTAINER ID        IMAGE                               COMMAND                CREATED             STATUS              PORTS               NAMES
48cabdba56e2        axway/decisioninsight:XXXXXXXX-XX   "/opt/adi/node/bin..." 5 seconds ago       Created                                 adi_XXXXXXXX-XX

For more information about Docker container security, see Docker runtime best practices.


Before you start the node, first configure it. Follow these steps:

  1. If needed, copy the license file in the host, eg ~/mylicence.licence
  2. Launch a temporary container with the docker run command  using the  root user to be able to edit the node configuration files (see below)
  3. If needed, copy the license into the volume in  /opt/adi/node/lib/licences .
  4. Execute /opt/adi/node/bin/ to initialize the cluster ID. For more information about cluster IDs, see How to choose the cluster ID ?
  5. Execute /opt/adi/node/bin/ to initialize the admin password.
  6. Execute /opt/adi/node/bin/ to initialize the encryption.key and encryption.salt files.
  7. Edit the /opt/adi/node/conf/ file.
    • Configure the external URL by editing com.systar.photon.application.proxy.url, eg http://hostname:18080
  8. Edit the /opt/adi/node/conf/jvm.conf file.
    • Configure the timezone by editing the user.timezone property. If not configured, the timezone will be GMT whatever the host timezone configuration.
  9. Execute chown -R adi-admin:adi-users /opt/adi/node/conf/ to fix ownership on conf.
  10. Execute chown -R adi-user:adi-users /opt/adi/node/var/ to fix ownership on var.

$ docker run --rm --tty --interactive --user root --volumes-from=adi_XXXXXXXX-XX -v ~/mylicence.jar:/tmp/mylicence.jar axway/decisioninsight:XXXXXXXX-XX /bin/sh
/ # cp /tmp/mylicence.jar /opt/adi/node/lib/licences/
/ # /opt/adi/node/bin/
/ # /opt/adi/node/bin/
/ # /opt/adi/node/bin/
/ # vi /opt/adi/node/conf/
/ # vi /opt/adi/node/conf/jvm.conf
/ # chown -R adi-admin:adi-users /opt/adi/node/conf/
/ # chown -R adi-user:adi-users /opt/adi/node/var/
/ # exit

Related Links