1.先说所碰到的问题
一开始我想的是使用centos镜像
进入镜像后安装docker
然后碰到问题,困扰了我一天,docker是成功安装了,但是问题来了,使用systemctl启动docker
![在这里插入图片描述](https://img-blog.csdnimg.cn/898ee37778fe4513818363d3f977491d.png#pic_center)
首先恭喜你使用centos7镜像,然后就是不幸告诉你这个问题是个BUG,我查了一天网上那些文章,全tm是复制粘贴给我整块崩溃了
后来我寻思既然他是centos7这个镜像的bug,那我换个镜像不就行了
我换成了ubuntu这个镜像,没想到啊,这个更厉害,systemctl是可以使用了,妈的他有用跟没有用没有任何区别,docker根本启动不起来
又是一顿疯狂的查,想着怎么给解决了,后来释怀了,我没有那个本事
继续想办法
重点来了
方法1:基于 docker.sock
/var/run/docker.sock
是默认的Unix socket(套接字),socket是同一机器中进程间通讯的一种方式。Docker daemon 默认监听docker.sock。比如可以使用下述命令获取 docker engine 的版本信息,以下在宿主机上执行:
那么如何在 docker 内运行 docker呢?只需要将宿主机的 docker 命令和 套接子映射到容器内部即可。
docker run --privileged --name='test_triton_jason' -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -itd your-images bash
进入到容器内部可以正常运行docker
命令:
可以看出,此时在容器内部可以执行 docker
命令。