如何使用Rancher部署发布自己的web应用

17 篇文章 0 订阅

作为使用Rancher的小白,昨天折腾了一天,终于搞定将自己的应用,使用Rancher部署并发布,今天就把过程记录下来,作为后来参考,也给个位小伙伴节省点儿时间
这里涉及到docker的一些使用(打包,发布,导入导出,运行等等)

准备应用
  • 需要有Docker环境
  • 需要有Rancher环境
  • 需要有你自己的应用
使用Rancher部署数据服务

这里就是MySQL的数据服务了,当然你也可以自己打包mysql的镜像,网上有很多,大概是先pull一个系统镜像,比如Centos:7.4,然后在系统里面安上mysql。。。。,我第一次也是这么做的,可惜,Docker我还玩不转,我打出来的镜像根本无法用。因此这里借助强大的Rancher就好了,配置几步就OK啦,步骤如下:

1.选择应用,从应用商店添加应用
在这里插入图片描述
2.搜索MySQL
在这里插入图片描述
3.查看详情
在这里插入图片描述
这里需要注意下,mysql服务的一些配置信息,必填项上图已经框出,其他信息可以保持默认,上图中给出:

  • 应用名称: mysql
  • 端口:3306
  • 密码:需要你指定root用户的密码
  • MySQL的docker镜像:这里就需要注意了,默认是:mysql:latest,但是最新的mysql我们一般是用不着的,目前(到2018-12-12日为止),最新的mysql是9.0+了,这个版本的安全验证变化比较大,跟5.0+版本的不一样,如果用最新的版本,很可能部署好后,假设你的客户端版本配合不上,那么你就没法用这个服务了,所以我这里选择了镜像myslq:5.7
  • MySQL数据库:因为我要部署小幺鸡,所以我这里直接就指定了一个数据库,xiaoyaoji,这个不是必填项,可以创建好服务好,直接创建数据库
  • 最后,需要选择创建后启动服务,然后点击启动按钮,Rancher就会为我们创建好相关应用

在这里插入图片描述
可见上面,创建的mysql服务,同时为我们提供好了负载均衡服务,省去了我们自己一顿瞎折腾,最后还达不到Rancher的效果(Smile…)

4.连接数据库并导入数据
现在赶紧用客户端工具试试
在这里插入图片描述
然后把项目的数据库内容导入进去。

构建自己的应用的镜像

请看另外一篇专门构建自己的镜像服务

准备开源镜像

实际上既然Rancher上MySQL的现成服务都有了,为什么tomcat的没有呢?在应用商店上搜索tomcat,发现确实没有,不过没关系,从docker仓库中搜索一下

[root@namenode2 package]# docker search tomcat:8.0
NAME                                       DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
tomcat                                     Apache Tomcat is an open source implementati…   2215                [OK]                
tomee                                      Apache TomEE is an all-Apache Java EE certif…   59                  [OK]                
dordoka/tomcat                             Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base…   50                                      [OK]
webgoat/webgoat-8.0                        Latest development version of WebGoat, see h…   41                                      
davidcaste/alpine-tomcat                   Apache Tomcat 7/8 using Oracle Java 7/8 with…   31                                      [OK]
bitnami/tomcat                             Bitnami Tomcat Docker Image                     27                                      [OK]
cloudesire/tomcat                          Tomcat server, 6/7/8                            14                                      [OK]
[root@namenode2 package]# 

很显然,tomcat是提供镜像的,那么把这个镜像pull下来即可

[root@namenode2 package]# docker pull tomcat:8.0
[root@namenode2 package]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
xiaoyaoji                 2.1.7               485178ba848b        17 hours ago        474MB
centos                    latest              1e1148e4cc2c        6 days ago          202MB
mariadb                   latest              b468922dbbd7        3 weeks ago         366MB
mysql                     latest              f991c20cb508        3 weeks ago         486MB
rancher/server            latest              a0b9e05b2a03        2 months ago        1.08GB
tomcat                    8.0                 ef6a7c98d192        3 months ago        356MB

这里pull 8.0版本的。
另外,查找容器,可以用search命令,但是最好,我还是推荐,去dockerhub的官方去查找,因为你能得到更多更详细的信息,比如搜索 tomcat,
在这里插入图片描述
点击DETAILS按钮,你会得到非常有用的信息:
在这里插入图片描述
详情中提供了这个镜像是如何使用,以及相关环境变量的配置等等以及其他的信息。这些信息非常重要。

好了,现在启动tomcat:8.0的镜像

[root@namenode2 package]# docker run -p 8889:8080 --name tomcat8 -d tomcat:8.0
[root@namenode2 package]# docker ps -a
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                              NAMES
0130e08a30b7        tomcat:8.0                        "catalina.sh run"        17 hours ago        Up 2 hours          0.0.0.0:8889->8080/tcp             tomcat8

访问: http://yourhostip:88889/ 就可以看到tomcat的管理界面了

接下来就是,把项目的应用放到tomcat的目录下,根据提示,是将xiaoyao-2.1.7.zip这个安装文件解压,放到tomcat安装目录下webapps/ROOT/目录下。

将这个压缩包上传到容器里面,命令

docker cp xiaoyaoji.gz.tar 0130e08a30b7:/usr/local/tomcat/webapps/ROOT
# 上面命令是将本地本目录下的文件xiaoyaoji.gz.tar
# 上传到容器:0130e08a30b7(也就是tomcat:8.0)的目录/usr/local/tomcat/webapps/ROOT

上传后,就需要登录到这个容器里面去解压

[root@namenode2 package]# docker exec -it 0130e08a30b7 bash
root@0130e08a30b7:/usr/local/tomcat# cd webapps/ROOT/
root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# ls
META-INF	   WEB-INF   asf-logo-wide.svg	bg-button.png  
bg-nav-item.png	bg-upper.png  index.html  robots.txt  
tomcat-power.gif	tomcat.gif  tomcat.svg
RELEASE-NOTES.txt  __MACOSX  assets		
bg-middle.png  bg-nav.png	favicon.ico   index.jsp   test	      
tomcat.css	tomcat.png  xiaoyaoji.gz.tar # 这个文件是刚刚上传的
root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# tar -zvxf xiaoyaoji.gz.tar

解压完成后,登录:http://yourhostip:8889/ 就会发现你的应用了
在这里插入图片描述

打包自己的镜像

上面是通过拉取tomcat的官方镜像,然后部署自己的应用上去,到这里已经可以提供服务了,但是这 并不是我要追求的最终结果,我所要的是用Rancher来集中管理我们的应用。

因此,还需要将这个容器打包成我自己的镜像。

1.导出容器
这里我们将tomcat:8.0的容器:0130e08a30b7

docker export 0130e08a30b7 > xiaoyaoji.tar

上面命令会将容器0130e08a30b7 导出到当前目录下,导出名为xiaoyaoji.tar
docker export 命令会把容器的文件系统以tar包的格式导出到标准输出。将容器保存到本地后,我们就可以通过网络等方式将tar包分享给他人。

我的Rancher有主机4台,那么我就需要将xiaoyaoji.tar分别发送到4台主机上去

2.导入容器为镜像

cat xiaoyaoji.tar | docker import - xiaoyaoji:2.1.7

上面命令是将导出的tar,转成镜像,镜像名为xiaoyaoji 标签是其版本2.1.7

3.查看镜像

docker images
[root@namenode2 package]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
xiaoyaoji                 2.1.7               485178ba848b        18 hours ago        474MB
centos                    latest              1e1148e4cc2c        6 days ago          202MB
mariadb                   latest              b468922dbbd7        3 weeks ago         366MB
mysql                     latest              f991c20cb508        3 weeks ago         486MB
rancher/server            latest              a0b9e05b2a03        2 months ago        1.08GB
tomcat                    8.0                 ef6a7c98d192        3 months ago        356MB

上面第一条就是我们刚刚导入的xiaoyaoji的镜像了,然后将Rancher的4台主机,分别如上操作。使其每个主机都包涵xiaoyaoji:2.1.7的镜像。

到这里,镜像我们就有了。

使用Rancher发布自己的应用

1.添加应用
在这里插入图片描述
名称:tomcat 描述:我的应用服务器
后面的选项全部默认即可,点击创建按钮完成

2.添加服务
应用添加完成后,界面会有显示
在这里插入图片描述
3.配置xiaoyaoji服务相关内容
在这里插入图片描述
如下填写上基础信息以及端口映射信息
这里注意:如图中,创建前总是拉取镜像,被我注销了,因为我的xiaoyaoji的镜像没有发布出去,只是在我本地中有xiaoyaoji:2.1.7的镜像,所以创建时候不应该再拉取镜像的。假设你的应用已经成功发布了,不论是在dockerhub上,还是你自己的私有docker仓库中,你需要勾选此项。

还有一些更重要的配置选项:
在这里插入图片描述
确保这些参数配置正确,否则服务总是会启动失败,这些参数那里来的?博文前面提到过,在dockerhub中搜索tomcat镜像的时候,其详细说明中有相关环境变量的描述。

同时,遇到启动失败,需要经常查看日志信息,rancher有日志,docker也有日志。
docker查看日志的命令

docker logs 容器id

根据日志提示能帮助你解决大部分问题。

好了,现在可以点击创建按钮了,过一会服务启动成功。
在这里插入图片描述
现在就可以访问:http://yourrancherhostip:8089/
在这里插入图片描述
如此你的应用就在Rancher中发布完成了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值