Use SystemDS with Docker

Docker enables you to separate applications from your infrastructure. This provides a way to manage the infrastructure the same way you do with the software.

With Docker, enabling GPU support would be much easier on linux. Since only the NVIDIA GPU drivers are required on the host machine (NVIDIA CUDA toolkit is not required).

SystemDS Docker requirements

Install Docker specific to your machine

Note: If you would like to manage docker as a non-root user, refer to linux-postinstall

Download SystemDS Docker image

The official SystemDS docker images are located at apache/systemds Docker Hub repository. Image releases are tagged based on the release channel:

Tag Description
nightly Builds for SystemDS main branch. Used by SystemDS developers

Usage examples:

docker pull apache/systemds:nightly         # Nightly release with CPU

Start the Docker container


For comprehensive guide, refer docker run

docker run [-it] [--rm] [-p hostPort:containerPort] apache/systemds[:tag] [command]


To verify the SystemDS installation,

Create a dml file, for example

touch hello.dml

cat <<EOF >>./hello.dml
print("This is SystemDS")

and run it.

docker run -it --rm -v $PWD:/tmp -w /tmp apache/systemds:nightly systemds ./hello.dml

The output is "This is SystemDS" after successful installation. For SystemDS usage instructions, see standalone instructions.

This way you can run a DML program developed on the host machine, mount the host directory and change the working directory with -v flag and -w flags.