对应用进行设置可能会相当复杂,尤其是在 Linux 系统上。不同应用有不同的配置方法,它们会在不同的文件系统路径下(在不同的 Linux 发行版中,由于应用存在多种变种,这些路径也会有所不同)保存二进制文件和数据。一旦你把系统配置好了,就很难再恢复到之前的状态,尤其是你同时进行了一些其他修改的时候(比如,安装了一些其他应用程序)。这也是最近诸如 Puppet、 Chef、 Ansible 和 Salt 这样的部署工具流行的原因。但即使有了这些工具的帮助,创建 cookbook/recipe 也许也十分麻烦: Linux 系统并非以傻瓜化著称,系统本身也不能让你摆脱麻烦。
业界出现了一个新的工具
很幸运的是,对于 Linux 运维人员来说,一个新的工具产生了,而该工具很有可能改变游戏规则:Docker ,一个开源的平台,能够以一种轻量级的方式打包应用程序以及它们的依赖。
这到底意味着什么?
Docker 使你能够在 Linux 系统上对不同的应用程序进行隔离,在不同的上下文环境中运行这些程序(这些程序可能执行在一台物理机器上,也可能运行在不同的物理机器上),请记住,这一点非常重要:
在实践中 Docker 是如何工作的?
或者这么讲,至少对于我来说,它是这么工作的:
我已经在我的本地 Vagrant 环境中指定了 Docker 作为部署工具, Vagrant 从 1.6 版本就引入了这一功能。对于什么是 Vagrant ,以及它为什么是 X 平台开发人员必备的工具,我认为无需赘述。
Docker 已经为我自动下载了一些 Linux 发行版的镜像(这些镜像会被 Vagrant 使用,在 hypervisor 上运行)。
现在我能够以至少两种方式创建我自己的容器(正在运行的,实现资源隔离的应用程序):
- sudo docker build
- ...
- or
- ...
- sudo docker run -i -t
/bin/bash
有些重要的事情需要记住
如果在 Dockerfile 里的命令执行完了,或者是通过 run 这个子命令运行的命令执行完了(因为它们并不是 daemon 程序),那么容器就会关闭并且消失!
当容器正在运行时,你可以十分方便地:
如果你想要通过手动执行命令的方式创建你自己的容器(run),你需要存储你自己的镜像 - 首先你需要在正在运行的容器列表里找到你想要的容器,然后执行commit命令:
- sudo docker ps
- sudo commit
通过使用以上所有的选项...
...我能够:
...在我做到以上所有事情的同时,我的操作系统却坚如磐石:我不会破坏任何事情,我可以很简单地回滚我做的任何操作。安装其他的容器也不会互相影响。
总之,在几周的时间里,我已经把 Docker 作为了我的主要的软件开发工具。现在我已经无法想象缺少了 Docker 我该怎样进行基于 JVM 的开发工作了。
分享标题:如何使用 Docker 来协助 X 系统上的开发工作
分享地址:http://www.csdahua.cn/qtweb/news26/388426.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网