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. 技巧方法 - CentOS6将Python2.6.6升级到Python2.7.6

    1.首先使用“python -V”命令查看python版本,我们测试主机显示的是2.6.6版,于是下面就着手将python2.6.6升级到Python2.7.6.python -V #查看python ...

  2. 查看 page页面某一个属性在 web ui 中的位置。

    1:例如查询 description 属性在web ui 中的位置. 2:进入订单编辑状态,鼠标放到该字段上,按F2 3:出现该字段的详细信息,包括:component,contextNode 4: ...

  3. go 语言学习 1

    Go语言命名 Go语言关键字 1.Go语言有25个关键字: 2.关键字用途: var :用于变量的声明const :用于常量的声明type :用于声明类型func :用于声明函数和方法package ...

  4. Django分页的实现

    Django分页的实现 Django ORM  分页介绍 分页是网页浏览中常见到的一种形式,在数据量较大时,一个页面显示不全,采取分割数据由用户选择进行显示的方式. 基本实现 技术点 通过切片得到数据 ...

  5. Mac下使用Wine安装Notepad++

    下载: (链接: https://pan.baidu.com/s/1miOjLXY 密码: 2egg) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/ ...

  6. 更换bbr内核

    1:首先yum update -y更新到最新CentOS 7.3 1611cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core) 2: ...

  7. Hibernate核心开发接口_SessionFactory详解

    SessionFactory: a)  用来产生和管理Session b)通常情况下每个应用只需要一个SessionFactory c)除非要访问多个数据库的情况 d) 关注两个方法即:  openS ...

  8. Touch事件机制

    1.概念 Touch事件分发中有三个主角:Activity.ViewGroup和View.Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewG ...

  9. Chapter 6. Names

    6.2. Names and Identifiers A name is used to refer to an entity declared in a program. There are two ...

  10. Asp.Net的Forms验证,解决Cookie和Seesion失效时间

    网站开发中用户验证一般采用Asp.Net的Forms验证,验证票据存储到Cookie的方式. Session方式是将验证信息存储在内存中,如果你使用的虚拟主机给你分配很小的内存,实际上都是如此,那么s ...