Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机:

1.虚拟机安装登录成功后开始部署docker:

首先了解docker是一个开源应用容器引擎,基于Go语言遵循apache2.0协议,容器相当于一个沙箱,相互之间没有任何接口,自身性能开销极低,docker主要由镜像、容器和仓库组成。

yum install -y yum-utils device-mapper-persistent-data lvm2
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun      ----阿里云创建
systemctl enable docker        ---开启自启动
 
-----------  上面已经表示docker安装完毕,开始创建容器------------------------
 
docker pull daocloud.io/library/centos:latest   ----拉取镜像下载,我选的是国内http://hub.daocloud.io/网站
docker  run -itd --name train_camp_centos  daocloud.io/library/centos:latest   ---创建容器并命名
docker ps -a  ----查看创建容器
 
2、这样就创建好了一个容器
3、接下来开始创建数据库mysql
docker pull daocloud.io/library/mysql:5.7.5  ---拉取数据库安装
docker  run -itd --name train_mysql_575 -p 3336:3306 -e MYSQL_ROOT_PASSWORD=123456  daocloud.io/library/mysql:5.7.5   -----用镜像创建数据库端口映射并创建train_mysql_575容器
通过docker exec -it train_mysql_575 /bin/bash  --------------进入mysql 容器
mysql -u root  -p                     --------------- 进入数据库
mysql> show databases;      ---------------查看数据库
 
-------------------------------------------------------此时mysql已经创建完毕------------------------------
 
4、开始docker 搭建Tomcat:
 
有一些常用命令如下:
docker  restart  name或者ID   ----重启镜像 
docker  stop name    ----关闭服务
docker rmi  name      ----删除镜像
docker  rm  -f  name ----删除容器
 
下面开始安装tomcat
docker pull daocloud.io/library/tomcat:8.5.16-jre8    -----下载tomacat包
 
docker run -itd  --name  tomcat_1   -p   8580:8080   daocloud.io/library/tomcat:8.5.16-jre8 ----- 创建 tomcat_1容器  默认端口8080    映射端口自己设置8580
 
然后项目包放进tomcat 
首先本地上传war包可以用SecureFXPortable.exe这个工具
docker cp erp.war tomcat_1:/usr/local/tomcat/webapps                         ----把项目包erp.war拷贝到容器
 
 
docker exec -it tomcat_1  /bin/bash    ----验证是否拷贝到容器
 
然后修改项目配置文件
docker cp tomcat_1:/usr/local/tomcat/webapps/erp/WEB-INF/classes/application.yml $PWD  ----从容器里面拷贝东西出来 
 
vim修改application.yml文件,只用修改开发环境下映射IP和端口,和登录密码

然后退出保存

 
docker cp  application.yml   tomcat_1:/usr/local/tomcat/webapps/erp/WEB-INF/classes/application.yml     ---------------把修改的文件拷贝到容器中
 
配置文件修改后  要重启容器 docker restart  tomcat_1
 
此时可以请求接口,数据库写入数据。基本上tomcat项目已经跑通。
 
重复此上步骤创建第二个tomcatx项目并命名tomcat_2
 
 
--------------------------------------------上述已经完成了tomcat项目,接下来安装nginx创建集群----------------------------
 
docker pull daocloud.io/library/nginx:1.13.0-alpine
 
docker run -itd  --restart always --name docker-nginx -p 80:80  daocloud.io/library/nginx:1.13.0-alpine      -----创建容器
 
然后修改nginx.conf配置文件
 
 
修改配置文件 nginx.conf    IP +端口    server-name=改成自己的主机IP 也可以是自己映射的域名     weight=1代表两个项目平均负载是50%
 

修改后复制到容器
docker cp nginx.conf docker-nginx:/etc/nginx/nginx.conf
重启容器
decker  restart  docker-nginx
 
集群搭建完成

综上所有项目已经完成,可以进行一个小实践了

要注意的是:

微服务项目里的不同业务是不同的jar包,然后直接部署 java -jar **.jar包名 ,不需要用到tomcat,因为里面自带了tomcat
 
 

Docker部署tomcat+nginx+mysql,创建一个tomcat集群的更多相关文章

  1. docker应用-6(mysql+mycat 搭建数据库集群)

    上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑 ...

  2. K8S学习笔记之二进制的方式创建一个Kubernetes集群

    0x00 单节点搭建和简述 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. 官方地址: ...

  3. Docker:docker部署PXC-5.7.21(mysql5.7.21)集群搭建负载均衡实现双机热部署方案

    单节点数据库弊端 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 推荐Mysql集群部署方案 PXC (Percon ...

  4. 2.28秒创建一个k8s集群(非理论篇,理论自行 -- )

    准备3台centos 7+ (建议7以上,不然要会很麻烦,要升级内核等等,扯淡的东西) 安装docker 和k8s集群(均以最新版为例)基于官网 设置静态ip(可选) 查看本机的网关ip cd /Li ...

  5. 使用docker来创建一个etcd集群

    docker run -d --name etcd1 --network etcdnet --ip 172.25.0.101 -p 23791:2379 -e ETCDCTL_API=3 -v /ro ...

  6. 在线创建MongoDB免费集群(MangoDB Atlas)

    MongoDB Atlas是MongoDB的云服务,构建在亚马逊的AWS上,MongoDB允许用户在上面创建一个免费集群作为学习使用. 1. 注册MongoDB cloud账号: 访问www.mong ...

  7. Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)

    转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...

  8. Docker实战之创建一个tomcat容器

    一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...

  9. Docker + node(koa) + nginx + mysql 线上环境部署

    在上一篇 Docker + node(koa) + nginx + mysql 开发环境搭建,我们进行了本地开发环境搭建 现在我们就来开始线上环境部署 如果本地环境搭建没有什么问题,那么线上部署的配置 ...

随机推荐

  1. yii2.0验证码的两种实现方式

    第一种方式:采用model 1. 模型:Code.php <?phpnamespace app\models; use yii\base\Model;class Code extends Mod ...

  2. NameServer 与zk

    1.nameServer 之间互不通信,故不存在强一致性,即不同的producer看到的视图可能时不一样的,(如何保证最终一致的?) 2.nameServer维护的boker信息 发生变化时,不会像z ...

  3. 课堂笔记【java JDBC】

    目录 JDBC简介 工作原理: 工作过程: JDBC驱动与连接 JDBC驱动 连接JDBC驱动 1.下载特定数据库的JDBCjar包 2.加载并注册数据库驱动 3.连接驱动 JDBC常见API JDB ...

  4. 2017 Mid Central Regional F.Orderly Class(大水题)

    这两天刷了两道过去的原题,看看思维还是8太行. 这道题问给出两个字符串,要求只翻转一次,问有几种不同的方法使得a串变成b串 我一开始没看到只翻转一次,还以为是个计数 + 字符串dp大难题,心想当年的学 ...

  5. 学习工具---maven

    写在前面 为什么要用maven? 作为一跨平台的项目管理工具,它有着以下丰富的应用场景: 作为程序员,有相当一部分时间花在编译.运行单元测试.生成文档.打包.部署和发布等不起眼的工作上,而maven将 ...

  6. moviepy音视频剪辑:mask clip遮罩剪辑、遮片、蒙版的作用以及其包含的构成内容

    ☞ ░ 前往老猿Python博文目录 ░ 在阅读moviepy的类ImageClip的构造方法代码时,对于其中涉及遮罩的处理没有理解,到处查找遮罩的资料没有查到,最后到moviepy的官网上尝试了一下 ...

  7. PyQt(Python+Qt)学习随笔:Designer中属性设置界面的属性字体使用粗黑体的含义

    老猿Python博文目录 老猿Python博客地址 使用了好几个月的Designer,今天才发现属性编辑界面的属性名有的为粗而黑,有的则不是,如图: 稍微测试了一下,发现是对属性值进行过调整,不再是缺 ...

  8. PyQt学习随笔:自定义Qt事件可以使用的事件类型的常量值范围

    除了<PyQt学习随笔:Qt事件QEvent.type类型常量及其含义资料速查>介绍的Qt已经定义的事件外,Qt还支持自定义事件. 为了方便起见,可以使用 registerEventTyp ...

  9. Elements-of-Python_03_LanguageFeature

    (内容包括Python语法概述,流程控制,条件表达式) 1 Python语法 1.1 Python的特点 Python是一种完全面向对象的.解释性的.可移植的.开源的脚本编程高级语言,具有丰富的库,允 ...

  10. PageRank 算法-Google 如何给网页排名

    公号:码农充电站pro 主页:https://codeshellme.github.io 在互联网早期,随着网络上的网页逐渐增多,如何从海量网页中检索出我们想要的页面,变得非常的重要. 当时著名的雅虎 ...