This error is telling you, that you are running another service (application) on localhost (probably your computer) with port 8080.
So basically you have two options on how to solve this problem:
- run
MLRun Docker instance on different port
- find and stop the running application and then run the
MLRun Docker instance
Solution for case 1.:
You have to change setting in Docker compose.yaml. file, like this:
services:
mlrun-api:
image: "mlrun/mlrun-api:${TAG:-1.0.6}"
ports:
- "8180:8080"
environment:
MLRUN_ARTIFACT_PATH: "${SHARED_DIR}/{{project}}"
# using local storage, meaning files / artifacts are stored locally, so we want to allow access to them
MLRUN_HTTPDB__REAL_PATH: /data
MLRUN_HTTPDB__DATA_VOLUME: "${SHARED_DIR}"
MLRUN_LOG_LEVEL: DEBUG
MLRUN_NUCLIO_DASHBOARD_URL: http://nuclio:8070
MLRUN_HTTPDB__DSN: "sqlite:////data/mlrun.db?check_same_thread=false"
MLRUN_UI__URL: http://localhost:8060
# not running on k8s meaning no need to store secrets
MLRUN_SECRET_STORES__KUBERNETES__AUTO_ADD_PROJECT_SECRETS: "false"
# let mlrun control nuclio resources
MLRUN_HTTPDB__PROJECTS__FOLLOWERS: "nuclio"
volumes:
- "${SHARED_DIR:?err}:/data"
networks:
- mlrun
mlrun-ui:
image: "mlrun/mlrun-ui:${TAG:-1.0.6}"
ports:
- "8060:8090"
environment:
MLRUN_API_PROXY_URL: http://mlrun-api:8080
MLRUN_NUCLIO_MODE: enable
MLRUN_NUCLIO_API_URL: http://nuclio:8070
MLRUN_NUCLIO_UI_URL: http://localhost:8070
networks:
- mlrun
nuclio:
image: "quay.io/nuclio/dashboard:${NUCLIO_TAG:-stable-amd64}"
ports:
- "8070:8070"
environment:
NUCLIO_DASHBOARD_EXTERNAL_IP_ADDRESSES: "${HOST_IP:-127.0.0.1}"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- mlrun
networks:
mlrun: {}
Solution for case 2.:
This case require some investigation, I recommend you to try to look for some other Docker containers with command docker ps -a where you can see other containers and their used ports. If you will find some containers using the same port 8080, you should stop and delete them with command docker stop <container_id / container_name>; docker rm <container_id / container_name> and then run MLRun container
In case you don't see any other container running on port 8080, you have to find the service (application) by using commands like:
# for unix like systems
# if you are using Windows, try to find the similar one command
netstat -ltnp | grep -w ':8080'
lsof -i :8080
After you find the process of the service running on port 8080, you can kill the process with command kill <PROCESS_ID> and then run MLRun container.