使用docker实现Android的自动化部署(一)

引言

 最近公司需求,要做自动化部署。所以写下来记录一下,同时供各位同学参考。我把从下载到学习使用docker的每一步都记录了下来,希望对大家有帮助。本节重点是了解、安装和学习使用docker。

什么是Docker,有什么用?

 Docker 是一个开源项目,诞生于 2013 年初。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术,在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

运用场景

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

下载安装Docker

 Docker的官网地址是(https://www.docker.com/),有需要的可以直接去下载自己匹配的版本。如果没有条件的同学下载不了,可以关注公众号“计算机自学平台”然后回复“docker”即可获取百度云盘下载地址。
在安装方面也不需要考虑太多,直接把下载好的文件双击安装即可。
安装完成后会在你的电脑上有个小鲸鱼的图标
这里写图片描述
安装完成后可以在终端尝试运行一下以下命令来检查你安装的结果
- docker version 查看当前docker的版本
这里写图片描述
- docker run hello-world 验证docker是否按预期运行
这里写图片描述

基本命令

搜索可用的镜像

Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:index.docker.io。
比如说我们想搜索一个名为“tutorial”的镜像,可以直接在终端输入:

 FarleydeMacBook-Air:~ Farley$ docker search tutorial

这里写图片描述
和在index.docker.io搜索的结果是一样的:
这里写图片描述

下载容器镜像

下载镜像的命令非常简单,使用docker pull命令即可。(译者按:docker命令和git有一些类似的地方)。在docker的镜像索引网站上面,镜像都是按照 用户名/ 镜像名的方式来存储的。有一组比较特殊的镜像,比如ubuntu这类基础镜像,经过官方的验证,值得信任,可以直接用 镜像名来检索到。
下载一下刚才我们搜索的那个镜像tutorial

docker pull learn/tutorial

这里写图片描述
下载也许会需要一点点时间,下载好之后如下图
这里写图片描述

在docker容器中运行

docker容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。
下面在我们刚刚下载的镜像中输出”hello”。为了达到这个目的,我们需要在这个容器中运行”echo”命令,输出”hello”。
docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。

docker run learn/tutorial echo "hello"

这里写图片描述

在容器中安装新的程序

下一步我们要做的事情是在容器里面安装一个简单的程序(ping)。我们之前下载的tutorial镜像是基于ubuntu的,所以你可以使用ubuntu的apt-get命令来安装ping程序:apt-get install -y ping。

备注:apt-get 命令执行完毕之后,容器就会停止,但对容器的改动不会丢失

在执行apt-get 命令的时候,要带上-y参数。如果不指定-y参数的话,apt-get命令会进入交互模式,需要用户输入命令来进行确认,但在docker环境中是无法响应这种交互的。

docker run learn/tutorial apt-get install -y ping

这里写图片描述

保存对容器的修改

当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为committing,它保存的新旧状态之间的区别,从而产生一个新的版本。

  • 首先使用docker ps -l命令获得安装完ping命令之后容器的id。
FarleydeMacBook-Air:~ Farley$ docker ps -l

这里写图片描述
- 运行docker commit,可以查看该命令的参数列表。

FarleydeMacBook-Air:~ Farley$ docker commit

这里写图片描述
- 你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)
- 无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
- 然后把这个镜像保存为learn/ping。

docker commit 58e8 learn/ping

这里写图片描述
执行完docker commit命令之后,会返回新版本镜像的id号。

运行新的镜像

ok,到现在为止,你已经建立了一个完整的、自成体系的docker环境,并且安装了ping命令在里面。它可以在任何支持docker环境的系统中运行啦!让我们来体验一下吧!
在新的镜像中运行ping www.baidu.com命令。
一定要使用新的镜像名learn/ping来运行ping命令。

docker run learn/ping ping www.baidu.com

这里写图片描述
顺利完成。

发布docker镜像

现在我们已经验证了新镜像可以正常工作,下一步我们可以将其发布到官方的索引网站。还记得我们最开始下载的learn/tutorial镜像吧,我们也可以把我们自己编译的镜像发布到索引页面,一方面可以自己重用,另一方面也可以分享给其他人使用。

  • docker images命令可以列出所有安装过的镜像。
  • docker push命令可以将某一个镜像发布到官方网站。
  • 你只能将镜像发布到自己的空间下面。
    这里写图片描述

到这一步,今本上就把docker有个完整的了解了,下一节开始我们的Android基础镜像制作和Android打包。
更多内容请关注公众号“计算机自学平台”

原创文章 52 获赞 40 访问量 9万+

猜你喜欢

转载自blog.csdn.net/farley119/article/details/82465329
今日推荐