Dial unix /var/run/docker.sock: connect: no such file or directory" context canceled

I’m trying to run gitlab-runner on my linux(not server):

sudo docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/do
cker.sock gitlab/gitlab-runner:latest

and register gitlab-runner successfully

Here is the repo and job: http://git.chenli.space/chenli/linux-kernel/-/jobs/42

When .gitlab-ci.yml run sudo docker build -t docker-build-debian-kernel-package:10:

`$ sudo docker build -t docker-build-debian-kernel-package:10 .
time="2019-08-07T02:07:15Z" level=error msg="failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: no such file or directory"
context canceled

I have many ways from google, e.g., change DOCKER_HOST in .gitlab-ci.yml. But all of them don’t work

When I try to edit docker.sock(it exists already) in gitlab-runner docker:

root@129329a2e62f:/# vim /var/run/docker.sock  

vim tells me permission denied.

I should use shell as executor, because I run docker build/run manually in .gitlab-ci.yml