咱们的工程使用了一个叫作termux的安卓上的linux终端,这个终端在全部的软件包里硬编码了软件的运行路径(/data/data/com.termux/..),因为安卓系统的权限设计,咱们名为bingduoduo的应用并无使用该目录的权限。这个bug在alpha阶段查找,调试折磨了咱们很长时间,由于实在没有想到应用的运行会和应用applicationId耦合在一块儿。咱们最终找到的解决方法是本身编译一份termux支持的全部的软件包,将运行路径改成/data/data/bingduoduo/..,并本身维护一个apt的下载源。为了解决编译时的环境问题,咱们使用了Termux项目组提供的docker镜像,因此本篇文章主要是介绍windows下docker的使用。linux
首先应该介绍一下dockerdocker
Docker 是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不会有任何接口。shell
————百度百科ubuntu
简而言之,docker是一个轻量级的为了解决环境依赖问题的虚拟机。windows
docker能够在windows上使用,不过不多博客提到的是须要windows开启Hype-V,而这项功能是windows 10家庭版和教育版不支持的,有的博客提供的改注册表的功能亲测无效。因此windows上使用docker的基本条件就是保证操做系统是windows专业版。bash
任务栏windows图标上右键
—应用与功能
—右边栏程序与功能
—左边栏启用或关闭Windows功能
—选择Hype-V
并肯定,重启电脑后Hype-V功能就已是开启状态的了。app
windows上的软件安装过程比较简单,在docker官网上直接下载Docker for Windows并安装就能够了,操做过程都是图形界面,比较符合windows用户的使用习惯学习
windows上的docker使用逻辑与linux上有所不一样,不能一键启动容器,必须先启动docker desktop才能够启动具体的容器。启动时间比较长,在docker desktop没有启动的状况下使用docker命令,或出现permission denied
的报错信息编码
docker启动之后可使用docker run hello-world
命令来检查本身是否安装正确。操作系统
咱们上文所说docker的目的之一是为了保证软件的依赖关系,它与常见的VM相比,一个最大的不一样就是它提供的dockerhub平台使别人已经配置好的镜像能够供你们下载,这样能够避免本身再去辛苦配置环境。
简单解释一下docker 容器和镜像的概念,容器是由镜像实例化而来,类比咱们学习过的面向对象的概念,镜像就是程序中定义的类,而容器是类实例化后的对象。
咱们能够这样获得一个镜像
docker pull ubuntu:14.04 #下载一个基于ubuntu14.04的镜像,在不指明下载地址的状况下,默认下载地址是docker hub
在镜像的基础上能够获得一个容器
docker run ubuntu:14.04 #会实例化一个容器,并给容器分配一个id
windows上使用docker的经常使用命令有(在powershell中)
#查看全部镜像 docker images -q #查看全部容器 docker ps -a #查看全部运行中容器 docker ps #进入容器 docker exec -it containerID /bin/bash #中止全部容器 docker stop $(docker ps -q) #删除全部容器 docker rm $(docker ps -aq) #删除全部镜像 docker rmi $(docker images -q) #删除某个镜像 docker rmi imageID #docker与宿主机互传文件 #从docker到宿主机 docker cp containerName:containerpath/file.txt filepath #从宿主机到docker docker cp filepath containerName:containerpath/file.txt