就在昨天晚上,我确定了自己研究生方向,那就是研究Docker。Docker应该是现在一项比较热门的技术,虽然现在的应用还不是很广泛。但是前景来说,应该还是不错的。在本科期间感觉其实也是学了一些技术的,但是过了三个月的暑假,安全没有去接触这些东西,感觉都忘了。看了一下以前写的一些博客,很浅显,但是对自己的帮助还是蛮大的,特别是Linux的那一块,可以帮助自己更快地上手Linux。所以,我想在学习Docker的时候也要坚持记录一下自己的学习过程。真正地记录自己的学习过程,希望有一天自己能真正地成长为一个大牛。

前期应该就是参考官网上的内容从安装开始,参考官网的安装教程就可以了。我用的操作系统系统是Ubuntu14.04,参考官网的安装教程,Docker的安装还是很简单的。就是一句命令

`wget -qO- https://get.docker.com/ | sh`

*接下去按照官网给的教程直接跑hello-world的应用程序,但是没有成功,原因是docker没有启动。需要先启动docker,命令如下:

sudo start docker

就可以运行Docker的实例了。

docker run hello-world

会输出一些东西,表示运行成功了。然后我还尝试使用了

docker run -it ubuntu bash

会加载一个ubuntu的bash,但是时间比较长,应该就是在加载一些镜像。(对网络的要求比较高)。我尝试使用了这个bash,感觉和正常的bash没有很大的区别,但是每一次运行在里面进行操作以后并不会保存那些操作。比如,我创建了一个新的用户,然后执行了一系列的操作。但是当我推出docker程序,并重新使用这个镜像的时候,会发现这些更改都没了。还是会恢复之前刚加载的样子,希望通过后续的学习可以解决这个问题。

解释一下上面那条命令的运行过程。docker表示这是一个docker程序,run表示创建并且运行后面的程序。实际过程如下:

  1. 查看当前是否已经有hello-world的镜像存在
  2. 如果没有的话,那就从Docker Hub上下载镜像
  3. 把镜像加载到容器中,并且运行

docker也能创建一个很复杂的镜像,可以加载一个数据库,或者是上面尝试的一个ubunutu的bash之类的。我们可以通过docker来开发自己的应用,而只要可以安装docker的机器都能运行这些应用程序。

在docker的库中有很多已经打包好的程序可以在Docker Hub 中找自己需要的程序。官网以一个名字为whalesay的应用为例。在search中输入要找的程序名称,找到程序后有相关的说明,包括程序的作用以及如何加载这个镜像。这里注意一下whalesay的库中的命令错了,正确的命令应该是:

docker run docker/whalesay cowsay boo

每一个应用程序用过一次以后,docker都会在本地保存该程序的镜像。本地保存的镜像可以通过以下命令查看:

docker images

每次运行一个程序的时候,docker程序会先在本地查找有没有相关的镜像。如果有,就不许再从Docker Hub上下载镜像,当然,如果Docker Hub上的相关镜像更新了,那么docker程序要是会从Docker Hub上下载更新(官网上说的)。