2023-01-16
Deploying MLFlow on Local Machine Using Docker
Docker is a popular tool that allows you to package, deploy, and run your applications in containers. In this tutorial, we will show you how to use Docker to deploy an MLFlow server on your local machine.
Prerequisites
- Docker should be installed on your local machine. If it's not installed please follow these instructions to install it.
Steps
1. Pull the MLFlow Docker Image
The first step is to pull the MLFlow Docker image from the official repository. You can do this by running the following command in your terminal:
docker pull atcommons/mlflow-server
This command downloads the latest MLFlow image from the Docker Hub.
2. Run the MLFlow Image as a Container
Once you have the MLFlow image, you can run it as a container by executing the following command:
docker run --rm -p 5000:5000 atcommons/mlflow-server
This command starts a container from the mlflow/mlflow
image and maps port 5000 on the host to port 5000 in the container. The --rm
flag tells Docker to remove the container when it exits.
3. Access the MLFlow Web UI
Once the container is running, you can access the MLFlow web UI by opening a web browser and navigating to http://localhost:5000
. You should see the MLFlow web UI, as shown below:
4. Run MLFlow commands
You can also use the container to run your MLFlow commands by running:
docker run -it --rm -p 5000:5000 mlflow/mlflow mlflow [command]
This command runs the specified mlflow [command]
in the container.
5. Configure the Tracking URI
To use the container as a remote server, you need to configure the tracking URI. You can set the tracking URI to the container's IP address, which you can find by running
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
6. Stop the Container
To stop the container, you can find the container id by running docker ps
then stop the container by running docker stop container_id
7. Persist Data
To persist the data, you can use volumes. For example, you can run
docker run -p 5000:5000 -v /path/on/host:/path/on/container mlflow/mlflow`
to map the host directory /path/on/host
to the container directory /path/on/container
.
NOTE: Running MLFlow on Docker on your local machine will not give you the ability to scale horizontally or ensure high availability. You may want to consider using cloud-based MLFlow services or deploying MLFlow on a virtual machine for more production-ready
X::How to Experiment With MLFlow Locally on Laptop or PC? Instructions for the Local Setup.
Tags:
mlflow
machine-learning
mlops
docker