最近在学习Docker,之所以被它吸引,是因为一个轻量的虚拟化环境,方便移植的特点,对于现在手上的项目,都很有启发,所以决定花些时间来学习一下。
Docker的安装
在Docker的官网上面,有很详细的安装说明,本人不是很懂Linux,所以采用比较大众化的Ubuntu,基本几条全集就可以安装成功,过程还是比较顺利的。附上安装说明的URL:
http://docs.docker.io/installation/ubuntulinux/
Docker的运行
在Docker的官网上面有一个很有意思的交互式的CMD,可以直接玩Docker,对于初学者来讲,相当直观,易懂。Doker其实是建立在LXC上面的一层类似虚拟机制的应用程序。希望我这样描述是正确的吧。通过这层应用程序,我们可以建立一个类似“沙箱”的container,俗称“容器”。这个容器能够当成是一个功能齐全的系统,在该系统上面运行我们需要的各种程序。而在我们建立这个container之前,我们需要一个image,俗称叫“镜像”的东西。我们通过在image中运行程序,从而得到container。最初我们可以从Docker的官网处下载一些已经做好的image,不需要自己动手在dockerfile. 从官网下载image的过程,简单的令人难以置信,就是通过在那个image中运行一条简单的命令,Docker就会在本地的repository中找寻这个image,如果有,就直接运行,如果没有,就从Docker的Index中搜寻,搜索到了就直接下载,然后运行。这样就达到了下载image的目的了。例如刚安装完Docer环境,然后运行以下命令:
sudo docker run ubuntu /bin/echo hello world
就会下载ubuntu这个image,然后执行。这个叫ubuntu是官方提供的,已经安装好ubuntu系统,可以放心使用的一个镜像。还有很多,大家可以根据自己喜欢下载不同的。在运行这条命令过后,其实就已经有一个container在我们的系统中,通过以下的命令,可以看到所有的container:
sudo docker ps -l
sudo docker images
sudo apt-get install python
Docker的保存方式
要保存container的状态,有两种方法。一种是通过commit和pull的方式,把刚才对ubuntu这个image的改动提交,在本地的repository中形成一个新的image,然后提交这个image到Docker官方的Index库中。以后需要用到这个image,就可以直接从官方的Index中下载就可以用了。具体操作如下:
第一步:commit。
sudo docker commit -author="your name <your email>" -m="your message" <Container ID> imagename:tag
第二步:pull
sudo docker push imagename:tag
另外一种保存container的方法,是通过save方法在本地保存成为一个压缩文件,一般是.tar.具体操作是:
sudo docker save container:tag > yourname.tar
sudo docker import < yourname.tar