GitLab - gitlab / gitlab-ce里面的Docker会出错

问题描述 投票:1回答:2

我正在码头上运行一个gitlab/gitlab-ce容器。然后,在里面,我想通过提供docker作为跑步者来运行gitlab-runner服务。我运行的每一个命令(例如docker ps,docker container ..),我都会收到此错误:

无法在unix:///var/run/docker.sock连接到Docker守护程序。 docker守护程序是否正在运行

P.s:我已经尝试过service docker restart,重新安装docker和gitlab-runner。

docker gitlab-ci gitlab-ci-runner
2个回答
1
投票

通过default,无法运行docker-in-docker(作为安全措施)。

您可以在特权模式下运行Gitlab容器,安装套接字(-v /var/run/docker.sock://var/run/docker.sock)并重试。

此外,还有一个docker-in-docker图像,用于docker-in-docker使用的modified。你可以读它here并创建你自己的自定义gitlab/gitlab-ce图像。

在这两种情况下,最终结果都与docker-in-docker不是真正的docker-in-docker相同,但是让您从Docker容器中管理主机docker-engine。因此,在同一主机上运行Gitlab-ci-runner docker image具有相同的结果,并且更容易。


1
投票

默认情况下,运行gitlab的docker容器无法访问主机上的docker守护程序。 docker客户端使用套接字连接与docker守护进程通信。您的容器中没有此套接字。

您可以使用docker卷使主机的套接字在容器中可用:

docker run -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-ce

之后,您将能够使用容器中的docker客户端与主机上的docker守护程序进行通信。

© www.soinside.com 2019 - 2024. All rights reserved.