我为什么用docker-compose来打包开发环境
BUILD, SHIP, RUN
Docker is the world’s leading software containerization platform
Docker的出现,让虚拟技术更上一个台阶。更有Docker Hub作为docker images的市场载体,让全世界分享你的成果。
建议使用Docker for Mac(10.10.3) 或 Docker for Windows(10) , 抛弃旧的Docker Toolbox
我对docker的应用有:
- 使用docker-compose封装公司后端组开发所需要的环境。
- 使用docker-compose封装我的服务器需要运行的各个应用。
下面分别介绍用处,和优势
1.在团队开发中,会遇到这样一个问题:开发机器统一会用到一些必备的应用,例如mongodb、mencached、redis等等,那么如何维护项目所需的预装软件?传统的方式是纪录成文档,然后有新人来的话就给他文档,然后一个一个安装。docker的出现,给应用带来了福音,下面看如何用docker-compose解决上诉问题。
解决方案:通过一个文件(docker-compose.yml)描述组内开发所需要的应用,然后上传git代码管理,有更新直接同步,有新同事来了或者一个新的机器要做成开发机,两步走:
* 安装docker和docker-compose
* 获取描述文件,执行命令
事例:
docker-compose.yml
version: '2'
services:
mongodb:
image: tutum/mongodb
ports:
- "27017:27017"
- "28017:28017"
environment:
- AUTH=no
container_name: mongodb
restart: always
memcached:
image: memcached
ports:
- "11211:11211"
container_name: memcached
restart: always
效果:只要运行docker-compose up,就会自动安装mongodb和memcached,并且会在机器重启的时候自启动。
2.再举一个docker-compose的例子,就是我自己的服务器的部署,不需要害怕还服务器以后所有的东西都要重新安装,只需要先安装docker-compose,在运行命令即可!
docker-compose.yml
version: '2'
services:
homepage:
image: kelvv/nvmhome-docker:v1.1.5
ports:
- "0.0.0.0:3000:22"
- "0.0.0.0:81:3000"
- "0.0.0.0:3101:3100"
environment:
- NODE_ENV=staging
- projecturl=https://github.com/kelvv/my-site.git
- autoupdate=true
container_name: kelvv-homepage
restart: always
shadowsock:
image: kelvv/shadowsock-docker
ports:
- "0.0.0.0:7878:431"
environment:
- password=docker
container_name: kelvv-shadowsock
restart: always
ppt:
image: kelvv/nvmhome-docker:v1.1.5
ports:
- "0.0.0.0:82:3000"
- "0.0.0.0:3102:3100"
environment:
- projecturl=https://github.com/kelvv/my-ppt.git
- autoupdate=true
container_name: kelvv-ppt
restart: always
效果:安装完以后,在服务器会安装3个应用
- 个人主页
- shadowsock 科学上网
- 个人ppt源
总结 :尽早使用docker,有好处
我为什么用docker-compose来打包开发环境的更多相关文章
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- PyCharm使用之利用Docker镜像搭建Python开发环境
在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...
- 如何通过Docker搭建一个swoft开发环境
本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...
- 使用 docker 部署常用的开发环境
使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...
- 用 Docker 搭建 ORACLE 数据库开发环境
用 Docker 搭建 ORACLE 数据库开发环境 需要安装 ORACLE 数据库做开发,直接安装的话因为各类平台的限制,非常复杂,会遇到很多问题. 还好,现在有 Docker 化的部署方式,省去很 ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...
- 使用Docker快速搭建PHP开发环境
最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...
- Docker Compose 项目打包部署
Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...
- 利用 Docker Compose 搭建 SpringBoot 运行环境(超详细步骤和分析)
0.前言 相信点进来看这篇文章的同学们已经对 Docker Dompose 有一定的了解了,下面,我们拿最简单的例子来介绍如何使用 Docker Compose 来管理项目. 本文例子: 一个应用服务 ...
- 利用Docker搭建java项目开发环境
一.需求 一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步 ...
随机推荐
- smtp自动发送邮件demo
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- Python SSLError
最近老是遇到这个问题. SSLError(SSLError(1, '[SSL: CERTIFIC ATE_VERIFY_FAILED] certificate verify failed (_ssl. ...
- 祝福csdn回望2014,展望2015 大致可以这样总结和展望
祝福CSDN回望2014,展望2015 大致可以这样总结和展望 回望2014,大致可以这样总结: 从寻觅一架飞机开始,到寻觅另一架飞机结束,中间觅了几天金正恩. 全年都在寻觅收钱的人.送钱的人和带着钱 ...
- (转)mysql主从切换步骤
原文:http://6226001001.blog.51cto.com/9243584/1723273 1> 正常切换 1)从服务器检查SHOW PROCESSLIST语句的输出,直到你看到Ha ...
- 利用setTimeout来实现setInterval
在Js中,当我们要在一定间隔时间内不断执行同一函数,我们可以使用setInterval函数,但setInterval在某些情况下使用时也存在一定问题. 1.不去关心回调函数是否还在运行 在某些情况下, ...
- Linux 命令学习之cd
功能说明: cd 命令是 linux 最基本的命令语句,其他的命令都会依赖与 cd 命令.因此学好 cd 命令是必须的. 语 法:cd [目的目录] 补充说明:cd指令可让用户在不同的目录间切换,需要 ...
- goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略
声明:这里面的代码均为网上找的然后有小小的改动,并非原创.但文章为原创 一..编译 1.1,.下载:进入http://embedthis.com/goahead/下载goahead3.6.3(2017 ...
- ssm项目启动,加载数据库连接池时卡住
今天早上到公司启动项目的时候,加载数据库连接池时卡住,昨晚还好着呢,然后排查原因,最后发现是因为有一个mapper的xml配置文件中 <mapper namespace="com.mi ...
- mysql去除重复记录案例
例1,表中有主键(可唯一标识的字段),且该字段为数字类型 1 测试数据 /* 表结构 */ DROP TABLE IF EXISTS `t1`; CREATE TABLE IF NOT EXISTS ...
- 使用Microsoft Azure云平台中的Service Bus 中继 Intanet环境下的WCF服务。
之前写的一篇文章:) 看起来好亲切. http://www.cnblogs.com/developersupport/archive/2013/05/23/WCF-ON-IIS-Azure-Servi ...