我想在另一个Docker容器中运行docker。我的主容器正在Windows 10上的OS Ubuntu 18.04的virtualbox中运行。在尝试运行它时,它显示为:
无法通过unix:///var/run/docker.sock连接到Docker守护程序。 docker守护程序正在运行吗?
如何解决此问题?
答案 0 :(得分:0)
是的,您可以这样做。在docker网页上检查dind(在docker中为docker)如何实现:https://hub.docker.com/_/docker
您的错误表明顶级容器中的dockerd没有运行,或者您没有在依赖容器上安装docker.sock来与顶级容器上运行的dockerd通信。
答案 1 :(得分:0)
我正在使用以下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,以便我的CI / CD管道在电流程中可以访问和使用docker命令。
根据您的上述描述,ecdocker/eflow-ce
是您的CI / CD解决方案容器,而您只想在此容器中使用docker command
,则不需要垃圾解决方案。您只能访问容器的主机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守护程序。