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的应用有:

  1. 使用docker-compose封装公司后端组开发所需要的环境。
  2. 使用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来打包开发环境的更多相关文章

  1. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  2. PyCharm使用之利用Docker镜像搭建Python开发环境

      在我们平时使用PyCharm的过程中,一般都是连接本地的Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装 ...

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

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

  4. 使用 docker 部署常用的开发环境

    使用 docker 部署常用的开发环境 Intro 使用 docker,很多环境可以借助 docker 去部署,没必要所有的环境都在本地安装,十分方便. 前段时间电脑之前返厂修了,回来之后所有的软件都 ...

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

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

  6. 五分钟用Docker快速搭建Go开发环境

    挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...

  7. 使用Docker快速搭建PHP开发环境

    最近有个同事找过来,希望我对在很早之前写的一个PHP网站上增加一些功能,当时开发使用xampp构建的本地开发环境,但是现在我的笔记本电脑已经更新,没有当时的开发环境.本着尽量不往电脑上装无用软件的原则 ...

  8. Docker Compose 项目打包部署

    Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...

  9. 利用 Docker Compose 搭建 SpringBoot 运行环境(超详细步骤和分析)

    0.前言 相信点进来看这篇文章的同学们已经对 Docker Dompose 有一定的了解了,下面,我们拿最简单的例子来介绍如何使用 Docker Compose 来管理项目. 本文例子: 一个应用服务 ...

  10. 利用Docker搭建java项目开发环境

    一.需求 一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步 ...

随机推荐

  1. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境

    我们选择VULTR VPS建站的还是比较多的,其主要原因在于商家的稳定,毕竟我们用来建站选择服务器价格考虑的不是主要的(当然VULTR价格也是比较便宜),最为主要的是因为VULTR商家比较稳定,而且多 ...

  2. BurpSuite系列----Extender模块(扩展器)

    一.简介 Burp在软件中提供了支持第三方拓展插件的功能,方便使用者编写自己的自定义插件或从插件商店中安装拓展插件.Burp扩展程序可以以多种方式支持自定义Burp的行为,例如:修改HTTP请求和响应 ...

  3. ubuntu 14.04网卡配置以及关闭防火墙

    一.Ubuntu网卡配置如下: 在文件/etc/network/interfaces中进行以下配置 auto lo iface lo inet lookback auto eth0 iface eth ...

  4. STM32F103RE引脚功能整理

  5. Array对象的判定

    /* 关于JS对象类型的判断,最复杂的在于RegExp和Array了,判定RegExp的情形不较少,而Array就比较多了,下面就是判断Array的方法 */ //方法一:利用instanceof来判 ...

  6. Java学习之路(五):常见的对象操作

    Object对象 我们先来介绍一下API API(Application Programming Interface):应用程序编程接口 Java API 就是Java提供给我们使用的类,这些类将底层 ...

  7. 天猫消息盒子的CSS实现

    css: body,h2,h3,ul,p{margin:0;padding:0;font-size:12px;} li{list-style: none; } a{text-decoration: n ...

  8. 四大组件之Activity——组件间传递数据的4种常用方法

    在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 通过Intent/Bundle传递数据 通过静态变量(static)传递数据:需构建跳转页面相应静态变量http://bl ...

  9. Cassandra概念学习系列之Cassandra是什么?

    不多说,直接上干货! http://cassandra.apache.org/ Apache Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱等简单 ...

  10. 让字体在div容器中垂直居中

    1. 只显示一行数据的话: 给容器设置height和line-height,并使两个值相等,再加上over-flow:hidden .test{ height:40px; line-height:40 ...