zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    iOS resign code with App Store profile and post to AppStore
    HTTPS科普扫盲帖 对称加密 非对称加密
    appid 评价
    使用Carthage安装第三方Swift库
    AngularJS:何时应该使用Directive、Controller、Service?
    xcode7 The operation couldn't be completed.
    cocoapods pod install 安装报错 is not used in any concrete target
    xcode7 NSAppTransportSecurity
    learning uboot how to set ddr parameter in qca4531 cpu
    learning uboot enable protect console
  • 原文地址:https://www.cnblogs.com/yanghuahui/p/3941685.html
Copyright © 2011-2022 走看看