问题:

公司给我们分配的服务器到期后不付费了,换成新服务商的服务器了。也就是说我们之前的环境需要重新搭建一次。光项目就50多个(微服务40+,其他服务不到10个),需要重新部署。

之前部署项目时,需要经过:部署代码,手动新增nginx配置,重启nginx,验证服务,有时nginx配置错误还会影响服务器上其他服务。流程繁琐。

需求:

更快的项目部署和迁移速度

环境隔离

解决:

虽然备份了之前服务器的配置和数据,可以快速搭建,但是想想后期部署新项目的时候还是很麻烦,就用docker把项目部署流程改进了下。

步骤: 1制作统一镜像,2规范项目nginx php配置,3编写公共docker-compose.yml文件

1 由于我们的项目php有多个版本,因此制作了多个集成了centos 不同版本php的镜像,因为运维同学最近也在研究怎么使用容器技术快速部署项目,他们做好的镜像我直接导入使用了。

2 容器内的项目部署目录固定 端口固定 index.php位置固定  这三个配置固定后 容器内的nginx 配置文件不需要修改。为了能够支持更多的容器启动,我们调小了php-fpm.conf 内进程有关配置,

3 最终通过在每个项目中增加docker-compose.yml文件(方便后期容器的维护),仅仅修改 1处外部映射端口和替换6处项目名称为当前项目名,部署在服务器项目同名目录后,使用有关命令便可快速创建 启动 停止 删除项目。

最后给出我的样例docker-compose.yml文件:

使用docker增加部署速度的一次实践的更多相关文章

  1. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  2. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  3. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  4. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

  5. 基于Docker一键部署大规模Hadoop集群及设计思路

    一.背景: 随着互联网的发展.互联网用户的增加,互联网中的数据也急剧膨胀.每天产生的数据量数以万计,本地文件系统和单机CPU已无法满足存储和计算要求.Hadoop分布式文件系统(HDFS)是海量数据存 ...

  6. docker stack 部署 mysql 5.6

    =============================================== 2018/7/1_第1次修改                       ccb_warlock === ...

  7. docker stack 部署 seafile(http)

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  8. Linux 上安装Docker 并部署netcor2.1

    述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享 ...

  9. Docker 的部署方式

    在使用 docker run 命令启动 Docker 容器时,如果需要进行端口映射.目录挂载.网络信息等配置,整条命令将变得非常长,并且由于是一条 shell 命令,修改和复用也不方便.我们在大规模部 ...

随机推荐

  1. Python--day61--Django ORM关系的简单梳理

    models.py中的代码和数据库中的表对应

  2. 解决vscode电脑卡顿问题

    在安装了vscode之后,发现电脑很卡,cpu使用率高达100%. 解决方法1: 打开vscode之后,点击文件==>首选项==>设置搜索设置search.followSymlinks然后 ...

  3. P1031 栈的序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...

  4. Recall(召回率);Precision(准确率);F1-Meature(综合评价指标);true positives;false positives;false negatives..

    转自:http://blog.csdn.net/t710smgtwoshima/article/details/8215037   Recall(召回率);Precision(准确率);F1-Meat ...

  5. java反射小实例

    利用反射实现 对配置文件的更改达到更改方法的目的 文件夹目录 首先Student类中有个sleep方法 pro.properties定义了参数 最后是RelectTestMain. package c ...

  6. 在Android上为所欲为的一些技术

    https://www.jianshu.com/p/87ce6f565d37Android JNI(一)——NDK与JNI基础 https://www.android-doc.com/guide/co ...

  7. python中交换两个变量值的方法

    a = 4b = 5 #第1种c = 0c = aa = bb = c #第2种a = a+bb = a-ba = a-b #第3种a,b = b,a print("a=%d,b=%d&qu ...

  8. PLsql下载官网下载地址

    https://www.allroundautomations.com/registered/plsqldev.html

  9. DEVOPS技术实践_21:Pipeline的嵌套以及流程控制的if和case语句

    1 if控制语句 使用一个简单的If控制语句 pipeline { agent any stages { stage('flow control') { steps { script { == ) { ...

  10. Jenkins的简单安装

    系统:CentOS release 6.5 (Final) 一. 安装JDK 1.1 查询系统是否已安装OpenJDK Centos系统默认会安装OpenJDK,首先检查系统是否安装有jdk并且是Op ...