efault...

Updated the global store configuration.The localhost URL will work, even if you are using Docker-backed ZenML orchestrators in your stack, like the local Docker orchestrator or a locally deployed Kubeflow orchestrator.

ZenML makes use of specialized DNS entries such as host.docker.internal and host.k3d.internal to make the ZenML server accessible from the pipeline steps running inside other Docker containers on the same machine.

You can manage the container with the usual Docker commands:

docker logs zenml to view the server logs

docker stop zenml to stop the server

docker start zenml to start the server again

docker rm zenml to remove the container

If you are looking for a customized ZenML server Docker deployment, you can configure one or more of the supported environment variables and then pass them to the container using the docker run --env or --env-file arguments (see the Docker documentation for more details). For example:

docker run -it -d -p 8080:8080 --name zenml \

--env ZENML_STORE_URL=mysql://username:password@host:port/database \

zenmldocker/zenml-server

If you're looking for a quick way to run both the ZenML server and a MySQL database with Docker, you can deploy the ZenML server with Docker Compose.

The rest of this guide covers various advanced use cases for running the ZenML server with Docker.

Persisting the SQLite database

Depending on your use case, you may also want to mount a persistent volume or directory from the host into the container to store the ZenML SQLite database file. This can be done using the --mount flag (see the Docker documentation for more details). For example:

mkdir zenml-server

docker run -it -d -p 8080:8080 --name zenml \

--mount type=bind,source=$PWD/zenml-server,target=/zenml/.zenconfig/local_stores/default_zen_store \

zenmldocker/zenml-server

This deployment has the advantage that the SQLite database file is persisted even when the container is removed with docker rm.

Docker MySQL database