如何在docker中执行宿主机的docker操作,我们管它叫docker in docker。


至于为什么要在docker中操作宿主机的docker,优点不言而喻,你既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只能将这样的软件程序直接安装到宿主机上,这样显然是不利于管理和维护的)。


实现这种需求,其实非常简单,你只需要将docker宿主机的docker文件和docker.sock文件挂载到容器中即可,具体为:


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


-v /usr/bin/docker:/usr/bin/docker


你要先找到你宿主机的docker和docker.sock位置,别挂载错了,标准的Linux正常来说就是上面的位置。


你在启动docker容器的时候,将上述两个文件正常挂载后,就可以在docker中执行诸如 docker images 等等这样的命令了。


如果出现问题 permission denied


Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock


…………………………………………………………


dial unix /var/run/docker.sock: connect: permission denied

————————————————