【Docker】Docker1.3改动简介

一段时间没有关注Docker,突然发现它的1.3版本已经在10月28日发布了,而且我认为改动内容非常有价值。

Docker1.2版本的改动,感觉比较有用的有两点:一是将restart的功能由daemon命令中移动到了client的docker run命令中,还可以设置重新启动时不会启动已经挂掉的container,二是支持在运行时对host文件进行修改。其他的改动由于了解的不是很多,不妄作评论,但整体改动感觉不痛不痒。

而刚看到Docker1.3版本的改动,就让我眼前一亮。

首先是docker exec命令,这个命令可以帮助我们很好地解决在运行时对container进行控制的问题,它可以在一个正在运行的container中执行新的命令。而在1.2版本以前,我们要实现这样的功能,只能通过ssh或者nsenter来实现,但两种方法都需要安装相应的程序,而且ssh方法还需要将container内的22端口给映射出来,这样我们会对原有的image做一定的修改,无法保证一个纯净的image。但docker exec命令,可以让我们在正在运行的container中以detach或者interactive的方式来执行新的命令,不需要对原有纯净的image做任何修改。

然后是docker create命令,原有的docker run命令用来创建一个container并创建一个线程来执行它,而docker create命令只是单纯地创建一个container,并不执行,如果我们需要启动这个container的话,用docekr start命令即可。这样我们可以我们可以预先准备好多个container,配置好相应的挂载存储和端口映射,并在需要的时候才启动这些container,而在1.2版本以前,我们只能傻傻地用docker run命令启动一个container,然后用docker stop命令来停止它,这样做显然很麻烦。其实这种启动方式,早在python版本的客户端API(docekr-py)中采用,这里只是把它拿到docker的client里面使用而已。

相关推荐