文章目录
1、环境及准备
软件 | 版本 |
---|---|
centos | 7.4-1708 |
docker | 19.03.0-ce |
rancher | 2.3.6 |
-
rancher部署参考:rancher部署安装过程
-
在测试环境里
etcd、control和work
均安装在了一个节点 -
应用:下载的开源小幺鸡web应用 下载
开源的小幺鸡需要使用maven编译,可参考这里
2、rancher安装mysql
2.1 应用商店安装
在rancher界面上从应用商店安装
选择项目后,依次找到应用商店,启用,筛选MySQL
名称、模板版本、命名空间均可默认
填上MySQL服务启动时自动创建的数据库和用户名密码
MySQL服务类型那里选择主机端口,端口号随便填一下
点击启动稍等片刻
查询服务
2.2 容器内验证
验证能不能用
[root@manager ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4b2cdbe6d7e5 4b3b6b994512 "docker-entrypoint.s¡" About a minute ago Up About a minute k8s_mysql_mysql-6f9f7db545-lmvnc_mysql_58515089-69b8-4acf-83a4-c662963fc89c_0
cfd5ba22d89f rancher/pause:3.1 "/pause" About a minute ago Up About a minute k8s_POD_mysql-6f9f7db545-lmvnc_mysql_58515089-69b8-4acf-83a4-c662963fc89c_0
进入容器内
[root@manager ~]# docker exec -it 4b2cdbe6d7e5 bash
root@mysql-6f9f7db545-lmvnc:/#
习惯用root用户登陆了,先查看root的密码
再用root登陆,查看数据库
root@mysql-6f9f7db545-lmvnc:/# echo $MYSQL_ROOT_PASSWORD
KWpN7P295I
root@mysql-6f9f7db545-lmvnc:/# mysql -uroot -p
Enter password: #KWpN7P295I
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 5.7.14 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test1 |
+--------------------+
5 rows in set (0.00 sec)
修改root用户密码
mysql> use mysql
# 以下两条经验证不行
# set password for root@localhost = password('123456');
# update user set password=password('123456') where user='root' and host='localhost';
mysql> alter user 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
2.3 使用navicat测试连接
查看mysql映射到本主机的端口号
[root@manager ~]# netstat -antp | grep 32219
tcp6 0 0 :::32219 :::* LISTEN 30544/kube-proxy
navicat新建连接,进行测试,测试OK。
3、docker安装tomcat
3.1 安装tomcat
直接根据版本拉取tomcat的镜像
[root@manager ~]# docker pull tomcat:8.0
8.0: Pulling from library/tomcat
f189db1b88b3: Pull complete
3d06cf2f1b5e: Pull complete
edd0da9e3091: Pull complete
eb7768aae14e: Pull complete
e2780f585e0f: Pull complete
e5ed720afeba: Pull complete
d9e134700cfc: Pull complete
e4804b33d02a: Pull complete
b9df0c24315e: Pull complete
49fdae8eaa20: Pull complete
1aea3d9a32e6: Pull complete
Digest: sha256:8ecb10948deb32c34aeadf7bf95d12a93fbd3527911fa629c1a3e7823b89ce6f
Status: Downloaded newer image for tomcat:8.0
docker.io/library/tomcat:8.0
[root@manager ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
......
tomcat 8.0 ef6a7c98d192 19 months ago 356MB
......
运行tomcat
[root@manager ~]# docker run -p 8889:8080 --name tomcat8 -d tomcat:8.0
296fc444e99b751ed62650790458517698f6327a8613c7390f77fdb04ec994b0
验证,访问主机IP:8889
3.2 将web应用拷到容器内
将web应用打成tar.gz包,zip的包容器内没办法解压
打包之前,需要做两件事(根据应用实际情况):
- 进入mysql的容器内,创建一个xiaoyaoji的数据库,并执行SQL脚本
# xiaoyaoji.sql从下载的源码里的doc目录内有
# 先从本地上传到rancher主机
[root@manager ~]# docker cp /opt/myweb/xiaoyaoji.sql 4b2cdbe6d7e5:/opt
[root@manager ~]# docker exec -it 4b2cdbe6d7e5 bash
root@mysql-6f9f7db545-lmvnc:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2560
Server version: 5.7.14 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database xiaoyaoji; # 创建数据库
Query OK, 1 row affected (0.00 sec)
mysql> use xiaoyaoji;
Database changed
mysql> source /opt/xiaoyaoji.sql # 执行脚本
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
......
- 修改项目中的配置文件/项目
/WEB-INF/classes/config.properties
上述完成后,将项目打包压缩
图中:
xiaoyaoji-2.1.7.war
:源代码经mvn编译之后打的包
xiaoyaoji-2.1.7
文件夹:war包自动解压后的项目整体
xiaoyaoji-2.1.7.tar
:使用7-zip压缩工具第一步处理
xiaoyaoji-2.1.7.tar.gz
:使用7-zip压缩工具第二步处理
先将xiaoyaoji-2.1.7.tar.gz
上传到rancher主机/opt/myweb
目录下
# 将包拷到容器内
[root@manager myweb]# docker cp xiaoyaoji-2.1.7.tar.gz 296fc444e99b:/usr/local/tomcat/webapps
# 进入容器内
root@296fc444e99b:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager xiaoyaoji-2.1.7.tar.gz
# 解压
root@296fc444e99b:/usr/local/tomcat/webapps# tar -zxvf xiaoyaoji-2.1.7.tar.gz
root@296fc444e99b:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager xiaoyaoji-2.1.7 xiaoyaoji-2.1.7.tar.gz
root@296fc444e99b:/usr/local/tomcat/webapps# mv xiaoyaoji-2.1.7 xiaoyaoji
root@296fc444e99b:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager xiaoyaoji xiaoyaoji-2.1.7.tar.gz
重启tomcat
[root@manager myweb]# docker restart 296fc444e99b
296fc444e99b
3.3 访问验证
验证注册,看数据库能用否
注册成功并登陆
4、导出容器上传镜像
将tomcat容器导出为tar包
[root@manager myweb]# docker export 296fc444e99b > xiaoyaoji3.tar
[root@manager myweb]# ll
total 996824
-rw-r--r--. 1 root root 1883 Apr 13 18:32 config.properties
-rw-r--r--. 1 root root 38441619 Apr 13 09:52 xiaoyaoji-2.1.7.tar.gz
-rw-r--r--. 1 root root 466742784 Apr 13 18:44 xiaoyaoji3.tar
-rw-r--r--. 1 root root 9955 Apr 13 10:31 xiaoyaoji.sql
将tar包导入镜像
# 镜像名版本号自定义
[root@manager myweb]# docker import xiaoyaoji3.tar myrancher/xiaoyaoji3:v3
sha256:aa3994e3fa4211fa002cc4a3b03347b995d48082a3c37a7c4bdc6f1ffbc1eca0
[root@manager myweb]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
myrancher/xiaoyaoji3 v3 aa3994e3fa42 36 seconds ago 456MB
......
5、rancher中启动应用
rancher项目中,部署应用
填上名称和镜像
端口映射,tomcat容器内配置文件没有动,默认8080
高级选项设置中填写入口和命令
安全/主机设置里,把镜像拉取的总是拉取取消掉
然后可以启动
看到分配的随机端口是30202
页面访问,注册登陆也可以正常使用
参考文章
全程参数这篇文章,写的很好,一步一步照着执行的
https://blog.csdn.net/junehappylove/article/details/84973467