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. apache 子域名自动与子域名同名的目录绑定

    假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/,在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b ...

  2. 树形DP学习笔记

    树形DP 入门模板题 poj P2342 大意就是一群职员之间有上下级关系,每个职员有一个快乐值,但是只有在他的直接上级不在场的情况下才会快乐.求举行一场聚会的快乐值之和的最大值. 求解 声明一个数组 ...

  3. 物联网学习之路——IoT概况

    物联网IoT概念 IoT,Internet of Things,即物物相连的互联网.它包含两层意思:一,以互联网为基础:二,物物相连,实现信息的交换和通信.物联网通过智能感知.识别技术与普适计算等通信 ...

  4. spring boot快速入门 8: 异常处理

    异常处理简单样例: 第一步:创建result实体类 package com.payease.domain; /** * http请求返回的最外层对象 * Created by liuxiaoming ...

  5. 修改docker的port端口映射

    原以为修改docker的端口映射只是一条命令就可以搞定,结果发现没那么简单,记录一下以防忘记.1. 查看需要修改的容器,记住container iddocker ps -a2. 停止容器docker ...

  6. 【es6】变量解构赋值

    1.数组解构赋值 let [a,b,c]=[1,2,3];//数组解构赋值,注意:左右两边格式需一致 let [a,b]=[1,2,3];//不完全解构,取位置靠前的值 let [a=1,b]=[un ...

  7. wpf 自定义ListView

    1.listview.itemtemplate设置item的外层父元素的控件. 2.listview.template设置item的样式(datatemplate),也可以使用itemcontaine ...

  8. java.lang.NoClassDefFoundError: org/springframework/ui/jasperreports/JasperReportsUtils原因

    在springMVC结合jasperReporter中发现的问题 java.lang.NoClassDefFoundError: org/springframework/ui/jasperreport ...

  9. APU (美国AMD公司研发的加速处理器)

    APU(Accelerated Processing Unit)中文名字叫加速处理器,是AMD“融聚未来”理念的产品,它第一次将中央处理器和独显核心做在一个晶片上,它同时具有高性能处理器和最新独立显卡 ...

  10. Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档

    < Hudson-ci‎ | Using Hudson‎ | Installing Hudson(Redirected from Hudson-ci/Installing Hudson RPM) ...