我想在另一个 docker 容器中运行 docker。我的主容器在我的 Windows 10 上的 OS Ubuntu 18.04 的虚拟机中运行。在尝试运行它时,它向我显示:
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?
我该如何解决这个问题?
我想在另一个 docker 容器中运行 docker。我的主容器在我的 Windows 10 上的 OS Ubuntu 18.04 的虚拟机中运行。在尝试运行它时,它向我显示:
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?
我该如何解决这个问题?
我正在使用以下 docker 命令在我的 Ubuntu 虚拟盒中的 docker 容器中运行电流: docker run --name efserver --hostname=efserver -d -p 8080:8080 -p 9990:9990 -p 7800:7800 - p 7070:80 -p 443:443 -p 8443:8443 -p 8200:8200 -i -t ecdocker/eflow-ce。在这个 docker 容器中,我想安装并运行 docker,以便我在 Electric-flow 中的 CI/CD 管道可以访问和使用 docker 命令。
从你上面的描述来看,ecdocker/eflow-ce
是你的 CI/CD 解决方案容器,而你只是想docker command
在这个容器中使用,那么你不需要 dind 解决方案。您可以只访问容器的主机 docker 服务器。
如下所示:
docker run --privileged --name efserver --hostname=efserver -d -p 8080:8080 -p 9990:9990 -p 7800:7800 -p 7070:80 -p 443:443 -p 8443:8443 -p 8200:8200 -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -i -t ecdocker/eflow-ce
与您的旧命令相比:
--privileged
-v $(which docker):/usr/bin/docker
,然后您可以docker client
在容器中使用。-v /var/run/docker.sock:/var/run/docker.sock
,然后您可以使用容器中的客户端访问主机的 docker 守护进程。是的,你可以这样做。在 docker 网页上检查 dind (docker in docker) 如何实现它:https ://hub.docker.com/_/docker
您的错误表明顶级容器中的 dockerd 没有运行,或者您没有在依赖容器上挂载 docker.sock 以与在顶级容器上运行的 dockerd 通信。