docker in docker (dind)、all in one (aino),关于docker和Linux的一些另类用法。以为 docker in docker 只会在Jenkins等其他场景中才会使用,没想到这段时间被迫研究了一下dind的使用。
有一个自动化测试项目,需要 Linux 或 Unix 环境下执行 sh 脚本,sh脚本包含了一系列的命令,其中就有很多docker相关的操作。简单的说如果是一台 Linux系统或者 Mac系统的电脑,并且安装了 docker ,执行这个脚本是没有任何问题的。
问题就出在这儿,Mac系列的低配电脑看不上,高配电脑买不起,所以一直用Windows系统的其他电脑僵持着,主要可能还是放不下该电脑的高配置和便捷的游戏支持。
上面的问题怎么解决呢?
1、第一想法肯定是windows系统上安装docker,通过文件挂载的方式把相关的项目文件映射到docker容器内部,在容器可以使用centos等系列的Linux系统,然而事实不太满足,sh脚本包含docker相关命令,相当于在容器内部还需要使用docker 命令。
2、第二想法,安装虚拟机,虚拟机安装Centos等系列的Linux系统,在Linux系统中装一个docker,然后通过xshell或者ftp方式或者其他文件挂载方式,把项目文件整合到Linux系统中,这样看来,环境貌似符合了。但是,虚拟机和主机的docker 是不兼容的,一个要关闭 hyperv,一个要开启 hpyerv,以及其他的相关配置都是冲突的。相当于必须放弃主机的docker,本来在