Docker搭建便捷的开发者环境
你可能遇到这样的场景:开发软件时,需要像数据库(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搭建便捷的开发者环境的更多相关文章
- 如何通过Docker搭建一个swoft开发环境
本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...
- Docker搭建wordpress博客环境(Centos7)
Docker搭建wordpress博客环境(Centos7) 升级系统 yum -y update 设置docker库 sudo yum install -y yum-utils sudo yum-c ...
- 用 Docker 搭建 ORACLE 数据库开发环境
用 Docker 搭建 ORACLE 数据库开发环境 需要安装 ORACLE 数据库做开发,直接安装的话因为各类平台的限制,非常复杂,会遇到很多问题. 还好,现在有 Docker 化的部署方式,省去很 ...
- 用docker搭建selenium grid分布式环境实践之路
最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...
- 使用docker搭建selenium grid 分布式环境
本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数.流程.原理等不做说明.selenium grid的详细情况可查看官方文档https:/ ...
- Docker搭建Java Web运行环境
1. 前提条件 安装了Docker的64位Linux 操作系统 Linux操作系统镜像 Linux版本的JDK压缩包 Linux版本的Tomcat压缩包 2. 启动容器 容器是在镜像的基础上来运行的, ...
- 使用 Docker 搭建 Java Web 运行环境
黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...
- 转:使用 Docker 搭建 Java Web 运行环境
原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...
- 使用 Docker 搭建 Java Web 运行环境(转)
原文 http://www.importnew.com/21798.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几 ...
随机推荐
- 73. Set Matrix Zeroes
题目: Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. Fo ...
- 'XCTest/XCTest.h' file not found
直接写解决方法吧:在报错的 Target 中的 Building Settings 中 Framework Search Paths 里面添加 $(PLATFORM_DIR)/Developer/Li ...
- windows系统查看80端口被占用的程序并结束该程序运行
一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制 ...
- notifyDataSetInvalidated和notifyDataSetChanged有什么区别
notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容.public void notifyDataSetChang ...
- Linux C程序内存空间
linux下内存空间布置: 一个典型的Linux C程序内存空间由如下几部分组成: 代码段(.text).这里存放的是CPU要执行的指令.代码段是可共享的,相同的代码在内存中只会有一个拷贝,同时这个段 ...
- springmvc注解配置
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.s ...
- UVA 111 History Grading
读题读了好久,其实就是在输入数据时要对数据的位置进行相应的改变 #include<iostream> #include<cstring> #include<cstdio& ...
- hdu 2034人见人爱A-B
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2034 解题思路:set的基本用法 #include<iostream> #include& ...
- 并发中的Native方法,CAS操作与ABA问题
Native方法,Unsafe与CAS操作 >>JNI和Native方法 Java中,通过JNI(Java Native Interface,java本地接口)来实现本地化,访问操作系统底 ...
- Linux Shell 高级编程技巧1----深入讨论(awk、<<)
1.深入讨论(awk.<<) 1.1.深入讨论awk 记录和域,模式和动作,正则表达式和元字符 基础教程中已经介绍 条件和逻辑操作符 ...