'gitlab runner docker networks missing

I'm trying to set up a ci cd with gitlab and docker, but when gitlab runner executes the command docker network ls. The nginxproxymanager_default network is missing while on my vps if I run the same command, the nginxproxymanager network is present.

gitlab-ci.yml:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3f277ce4da1a        bridge              bridge              local
e3c2cfc360d0        host                host                local
e0d83076a0f3        none                null                local

ssh with vps:

docker network ls
NETWORK ID     NAME                        DRIVER    SCOPE
fec1b6465ccd   bridge                      bridge    local
d2f1618cf9a9   host                        host      local
b879f034d44a   nginxproxymanager_default   bridge    local
54cfc9978bc1   none                        null      local

Can someone help me ? :/



Solution 1:[1]

When you utilize docker-in-docker in GitLab using the docker:dind service, GitLab jobs do not share the same docker daemon as the host. The service is the daemon for your job. Each instance of the docker:dind service has its own set of networks, containers, etc. This is beneficial because it means that jobs won't accidentally interfere with one another. For example, if two jobs run concurrently and run docker run then docker ps -- each job will only see their own respective containers in the output of docker ps.

If you want GitLab jobs to use the host docker daemon then you have to mount the docker socket (/var/run/docker.sock) in the volumes configuration in your gitlab-runner. However, this is not recommended, partly for the reasons stated above.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 sytech