GitLab Runner use dind(docker in docker) to clone repo failed from self-hosted gitlab

I use a vm machine to host a gitlab by docker. I also host two gitlab-runner by docker at same vm.
I have register two runner to gitlab server. My .gitlab-ci.yml is at bottom. I want to use dind to build my image.
But I get the error from pipeline job. It looks like it cannot reach my vm’s ip (
So I go inside the runner container to ping vm’s ip. It get the response. How could I fix this? Please help me.

Cloning repository...
Cloning into '/builds/project'...
fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@{serverIp}:9090/project.git/': Failed to connect to {serverIp} port 9090: Host is unreachable
ERROR: Job failed: exit code 1


image: docker:latest

  - docker:dind

  DOCKER_DRIVER: overlay2

  - docker info

   - config

   - docker images
   - dcoker ps
  stage: config

Can you run ‘ps docker’ and show the content please?

docker ps run on my vm show this.

try to use port 80 instead of port 9090

I think it is ip’s issue.
I host gitlab runner at another server. And it works fine.
I don’t know why these at same server cannot work.

I was referring to trying to change the port, since according to the error it says “Failed to connect to {serverIp} port 9090:”, and port 9090 is for prometheus