dominoctl provides commands and operations for Domino on Docker and Podman. For running a single Domino instance on a Docker or Podman host, this script is one-stop shopping for all operations. From start/stop to configuration and the life time of the container all all szenarios are covered. Most of the standard commands are very similar to the Domino start script. The container control script works hand in hand with the Domino start script, which is running inside the container.
Switch to the start-script directory and run the install script.
- To get your server up and running, ensure you have a container image defined and available on your machine.
- When running on Docker make sure the Docker service is running.
Edit your container configuration and ensure at least the following settings are specified:
See full list of all configurations options below.
Finally start your container. For the first start will run a new container. If the container is already present, the container is started.
dominoctl automatically detects Docker and Podman run-time environments to use the right commands. In contrast to Docker, Podman is daemon-less and needs a separate service to start. The project comes with a systemd script, which is automatically installed and leveraged by dominoctl.
Start an existing container (the ‘live’ option shows start script output)
Stop container (the ‘live’ option Show start script output)
Restart or start the server
Show container status (running, exited, notexisting)
Show the systemd status
Show machine info. With ‘About’ or ‘about+’ also show info from https://ipinfo.io/
Show status and basic information about container and image
Show detailed information about container and image
Show used tcp/ip ports for container
Open Domino console inside the container
Show container logs (output from entry point script/start script)
Attach to entrypoint script
Pass a command to the start script (e.g. domino nsd)
Invoke a bash in the running container. optionally run as root instead of notes user
Remove the container (if not running)
Remove the currently configured image (you have to remove the container first)
Create JSON configuration for container auto configuraiton
Update the container if referenced image has changed (stops Domino, stops the container, runs a new image)
Pull current image (e.g for update)
Load HCL Domino Docker image
Build a current image – even image tags might not have changed to ensure OS patches are installed
Update restart policy for existing container (e.g. : no | on-failure | always | unless-stopped)
Enable systemd service for Podman
Disable systemd service for Podman
Cleanup container and systemd if configured
Edit environment file
Show script version information
Defines the name of the container.
The container name is used to reference the container by name instead of using the container ID.
Container image used by the container.
By default, the build script used the name hclcom/domino:latest
Defines the container hostname. If not set, the machine’s hostname is used by default.
By default, the Docker kills the container processes after 10 seconds.
Domino requires a longer shutdown interval than 10 seconds. If not specified the container timeout is set to 120 seconds by the script.
This variable defines the container hostname.
Using the host network is the best choice for a single Domino container running in a container.
In this case, you don’t need to expose individual ports.
But this will make all ports inside the container available on the Linux host.
In addition, if the firewall is running, you have to open ports individually.
On the other side, the host network doesn’t use network address translation.
The host network configuration allows seeing external IP addresses 1:1 inside the container.
This is important for IP address logging.
If not specifying the host network, ports need to be exported explicitly.
Ports you export from your container are automatically added to your host firewall, which makes them available externally.
Example for container network
CONTAINER_PORTS="-p 1352:1352 -p 80:80 -p 443:443"
Volumes store persistent data for containers.
The volume definition is used to map physical volumes or container volumes.
CONTAINER_VOLUMES="-v /local/notesdata:/local/notesdata -v /local/translog:/local/translog -v /local/daos:/local/daos "
An environment file is used for the first container start (run) to pass setup parameters.
The new configuration uses a JSON OneTouch automation setup. Just run domino_container setup.
By default, the Docker daemon does not start containers automatically.
The Docker Restart policy defines if and when containers are started or restarted.
This option allows setting the restart policy.
The Domino Community container supports a Borg Backup using an optional build option.
For Domino V12 Borg Backup restore support the FUSE device is required.
This option enables the FUSE device when running the container.
By default vi is used for all edit operations.
The configuration option allows switching to a different editor.
dominoctl is a very flexible tool to run your Domino containers on Dock and Podman. In some scenarios for lab environments using docker-compose with multiple containers are helpful. To enable Docker compose support, add a
docker-compose.yml to the configuration directory.
By default, the configuration is located in
/etc/sysconfig. In addition, two additional configuration locations can be used:
- Home Directory
- Current work directory
dominoctl runs with any user. Podman is daemon-less and allows to run with any user by default. Podman even separates containers and images between users. For Docker the user needs to be added to the
docker group to allow running Docker commands.
The directory name for configurations is
.dominoctl This directory is either located in your home directory or the local work directory.
- Current directory
- Home Directory
The directory can contain the following files:
configuration file (required)
Docker compose file. If this file is present, Docker compose is used
Environment file specifying environment variables for Docker container.
writes a new configuration into the current user’s home directory
writes a new configuration into the current directory
writes an empty .env file
copies a default docker-compose.yml