你可能遇到这样的场景:开发软件时,需要像数据库(mysql,mongodb)、消息系统(rabbitmq)、缓存服务(redis)等其它依赖服务。当然我们可以找台机器,一步步安装依赖,然后把所有依赖的服务都安装好,这就是一台测试机。

为了避免重复的劳动,vm层面的解决方案就是把这个测试机做成镜像,以后申请的时候,就可以用之前测试机的镜像作为模板,启动一台虚拟机。这是一种解决方案,不过你可能需要更加灵活的解决方案,更加快速的启动一个开发环境,更加自由的组合和扩展开发时候依赖的服务组件,那好,it comes to Docker。

Dock基于Docker实现了快速搭建开发环境,是一个更加灵活便利的可行性方案,可以短时间内启动所有开发环境所需要的服务。

Dock Github:https://github.com/bripkens/dock

安装步骤:

1.首先确保我们安装了docker engine,然后接下来就是安装dock,当然如果在mac系统上,也可以通过虚拟化的解决方案boot2docker来安装docker,这样整个开发环境就可以都在mac机器上

2.代码clone下来,然后执行以下命令以及初始化工作,可以把dock放到环境变量中

chmod +x /path/to/dock   # Make dock executable
dock -u # Initialise dock

之后你就可以运行以下命令快速的启动需要的组件了,dock这个项目比较简单,很快就可以把代码看完,因为就是在docker之上封装了一层sh脚本,在formula里头可以根据项目需求,自行添加服务组件

$ dock redis jenkins mongodb rabbitmq

这样在开发机上就已经有如下服务了

root@docker-stable-ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND PORTS NAMES
63142f5e4ad2 tutum/rabbitmq /run.sh 0.0.0.0:5672->5672/tcp, 0.0.0.0:15672->15672/tcp rabbitmq
29c3a381ba55 dockerfile/mongodb:latest mongod 28017/tcp, 0.0.0.0:27017->27017/tcp mongodb
0b356f508ed6 jenkins:latest /usr/local/bin/jenki 50000/tcp, 0.0.0.0:8472->8080/tcp jenkins
2cf88d0aea8f dockerfile/redis:latest redis-server /etc/re 0.0.0.0:6379->6379/tcp redis

接下来,开发者就可以根据ip+port等信息,使用刚刚所启动的服务组件了

扩展:

也许我们可以提供这样的服务

1.开发者需要一个redis实例,mongodb实例等等

2.我们可以做一个这样的服务,搭建一个docker集群,然后写一个网页,接收用户的请求,请求到后台docker集群运行起来一个实例,成功后返回ip+port+admin+password

3.开发者通过网页就可以管理申请实例的生命周期

4.管理员在平台中方便的添加新的服务,只要package所需服务的docker image

加上服务发现和管理,这样就是一个简单私有云的服务分发平台

Docker搭建便捷的开发者环境的更多相关文章

  1. 如何通过Docker搭建一个swoft开发环境

    本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...

  2. Docker搭建wordpress博客环境(Centos7)

    Docker搭建wordpress博客环境(Centos7) 升级系统 yum -y update 设置docker库 sudo yum install -y yum-utils sudo yum-c ...

  3. 用 Docker 搭建 ORACLE 数据库开发环境

    用 Docker 搭建 ORACLE 数据库开发环境 需要安装 ORACLE 数据库做开发,直接安装的话因为各类平台的限制,非常复杂,会遇到很多问题. 还好,现在有 Docker 化的部署方式,省去很 ...

  4. 用docker搭建selenium grid分布式环境实践之路

    最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...

  5. 使用docker搭建selenium grid 分布式环境

    本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数.流程.原理等不做说明.selenium grid的详细情况可查看官方文档https:/ ...

  6. Docker搭建Java Web运行环境

    1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...

  7. 使用 Docker 搭建 Java Web 运行环境

    黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...

  8. 转:使用 Docker 搭建 Java Web 运行环境

    原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...

  9. 使用 Docker 搭建 Java Web 运行环境(转)

    原文 http://www.importnew.com/21798.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几 ...

随机推荐

  1. Centos7 设置Swap分区

    1.使用dd命令创建一个swap交换文件 dd if=/dev/zero of=/home/swap bs=1024 count=1024000 2.制作为swap格式文件: mkswap /home ...

  2. NYOJ题目1047欧几里得

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAIcCAIAAACLpKQmAAAgAElEQVR4nO3dv1LjOsMH4O8m6LkQ6l ...

  3. EF – 3.EF数据查询基础(下)数据关联

    5.5.1 <关于“数据关联”,你不一定清楚的事> 这讲视频比较全面地介绍了“一对一”.“一对多”和“多对多”三种数据关联类型在关系数据库和Entity Framework数据模型中的实现 ...

  4. 理解Java中的final和static关键字

    回顾这两个关键字前,先考虑一个问题: Static变量存储在JVM中的位置,或者说static变量是如何被加载的? JVM会把类的静态方法和静态变量在类加载的过程中读入方法区(Method Area) ...

  5. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  6. js 随机星星 document.createElement(); setAttribute()

    js 随机星星 document.createElement(); setAttribute() <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  7. Windows 历史

  8. hdu 5437 优先队列+模拟 **

    比赛的时候虽然考虑到没门的情况,但是写了几组都能过,就没想了,23333,差一行代码就能A,遗憾~~ #include<cstdio> #include<iostream> # ...

  9. Socket编程注意接收缓冲区大小

    转自:http://www.cnblogs.com/ITBread/p/3900254.html 最近在做一个udp升级程序,因文件有点大,需要将程序分成多个包发送,每次发送一个包,收到回复后发送下一 ...

  10. linux内核的组成,王明学learn

    linux内核的组成 一.linux内核源代码目录结构 arch: 包含和硬件体系结构相关的代码, 每种平台占一个相应的目录, 如 i386.ARM.PowerPC.MIPS 等. block:块设备 ...