I installed MLRun to the docker and I got
Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - driver failed programming external connectivity on endpoint desktopdockertools-mlrun-api-1 (a5a67db8a74bf4981d44477ffb77dccb25d2401d8fdd95c64262de30ed6d1a56): Bind for 0.0.0.0:8080 failed: port is already allocated
Do you have any experience?
I installed different MLRun versions with Jupyter (usage compose.with-jupyter.yaml) and without Jupyter (compose.yaml), but I still see the same issue. I made installation based on https://docs.mlrun.org/en/latest/install/local-docker.html#install-local-docker.
2
Answers
It happened based on more MLRun installations, where first installation allocated requested port 8080 and other installations failed. The work-arround is:
If you need to use more MLRuns (e.g. with jupyter and without jupyter), you have to change ports in YAML files.
This error is telling you, that you are running another service (application) on
localhost
(probably your computer) with port8080
.So basically you have two options on how to solve this problem:
MLRun
Docker instance on different portMLRun
Docker instanceSolution for case 1.:
You have to change setting in Docker
compose.yaml.
file, like this: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 port8080
, you should stop and delete them with commanddocker stop <container_id / container_name>; docker rm <container_id / container_name>
and then runMLRun
containerIn case you don’t see any other container running on port
8080
, you have to find the service (application) by using commands like:After you find the process of the service running on port
8080
, you can kill the process with commandkill <PROCESS_ID>
and then runMLRun
container.