# Run your CI/CD runner with Gitlab Runner in 2 minutes

I really like Gitlab for their CI/CD services. And specially their generous free usage offering. These month I've been running out of CI/CD minutes. So I decided to run my own runner inside a VM which I don't use that much.

**Prerequisites**

- Docker installed


## Step 1

Registering our runner to Gitlab. You'll need to get the `Runner registration token` from the `Project Setting > CI/CD` page.
It'll look something like below

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1643535214038/gBawHAk35.png)

Let's register our runner. 

```sh
docker run --rm -it --name gitlab-runner      -v /srv/gitlab-runner/config:/etc/gitlab-runner      -v /var/run/docker.sock:/var/run/docker.sock      gitlab/gitlab-runner:latest register
```

We're doing a few things here.
- First we are running gitlab-runner container and asking it to register itself to Gitlab.
- We're also mounting `docker.sock` to the runner container so that it can spin a new docker container for our CI/CD pipeline
- We're mount a config directory so our configuration is persisted across the container restart.

Once you run above it will ask you two thing, Gitlab instance URL and your registration token. Just fill in what you obtained from above step.

Once that's done. We need to run the `gitlab-runner` container.

Let's run it 
```sh
docker run -d --name gitlab-runner --restart always      -v /srv/gitlab-runner/config:/etc/gitlab-runner      -v /var/run/docker.sock:/var/run/docker.sock      gitlab/gitlab-runner:latest
```

Remember we are mounting the same config directory, and it is important otherwise `gitlab-runner` won't run.

And that's all. Now if you refresh the CI/CD settings page you will see your runner listed there.





