demo部署到docker+mysql+Tomcat+jdk
环境:
Windows10、虚拟机VirtualBox、Linux系统CentOS7、
开发运维软件FinalShell、容器Docker
下载文件:apache-tomcat-8.5.57.tar
jdk-8u251-linux-x64.tar
过程:
一、先在virtualBox的centos7系统上进行获取MySQL镜像生成容器操作,并将本地数据库上传到虚拟机的服务器数据库
1、#查找MySQL镜像的版本信息#
docker search mysql
2、#选取合适的版本,拉取MySQL镜像#
docker pull mysql
3、#查看镜像信息#
docker images
4、#获取到刚才拉取的MySQL镜像,创建MySQL容器#
docker run -di --name mysql111 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql222
#mysql111# 代表自定义容器名称
#-p# 代表端口映射,格式为 宿主机映射端口:容器运行端口
#-e# 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
#mysql222# 代表刚获取到的镜像名称
5、#进入刚创建的MySQL容器#
docker exec -it ID bash
#ID# 代表MySQL容器id
6、#登录mysql#=======登录不成功(转二)
mysql -uroot -p
Enter password:123456
7、#进行授权远程连接(注意mysql 8.0跟之前的授权方式不同),注意自己的mysql版本授权#
mysql>grant all privileges on *.* to 'root'@'%' ;
mysql>flush privileges;(刷新)
8、使用本地可视化工具Navicat连接mysql
9、将你的数据库转储成 ims.sql文件
10、在新的mysql连接中新建数据库 ims ,运行刚才的ims.sql文件
11、此时数据库部署成功
二、MySQL可能登录不成功
1、重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
找到/etc/my.cnf文件
2、在文档内搜索mysqld定位到[mysqld]文本段:
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
保存文档并退出
3、接下来我们需要重启MySQL
service mysqld restart(如果不能用请去百度找合适的)
4、重启之后输入命令即可进入mysql
mysql -uroot mysql
5、接下来就是用sql来修改root的密码
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit
#如果这步成功的话root账户密码已经重置(接6)#
##否则:在Mysql 5.7中,字段密码不再存在,你必须使用以下命令##
UPDATE user SET authentication_string=password('root新密码') WHERE user='root';
此时root密码重置成功!!!(接6)
6、编辑my.cnf,去掉刚才添加的内容,然后重启mysql
三、将自己的项目从开发软件导出,我这里用的eclipse
1、首先更改自己的项目数据库配置文件(db.properties),将localhost改为虚拟机ip,端口改为虚拟机mysql容器暴露的端口号
2、在eclipse中项目右键点击Export,将你的项目导出成 .war文件
四、编辑Dockfile文件#下边IMS是我的项目名称
#依赖mysql镜像名称和ID
FROM docker.io/centos/mysql-57-centos7:latest
#指定镜像创建者信息
MAINTAINER dongxh_csd<dongxh_csd@si-tech.com.cn>
#添加jdk和tomcat到/usr/local/src目录下
ADD jdk-8u251-linux-x64.tar.gz /usr/local/src
ADD apache-tomcat-8.5.57.tar.gz /usr/local/src
#编辑环境变量
ENV JAVA_HOME=/usr/local/src/jdk1.8.0_251
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/src/apache-tomcat-8.5.57
ENV PATH=$PATH:$CATALINA_HOME/bin
#删除ROOT文件夹(替换tomcat首页),并将war包导入webapps目录下
WORKDIR $CATALINA_HOME/webapps/
RUN rm -rf IMS
COPY IMS.war $CATALINA_HOME/webapps/
#对外暴露端口并做成镜像
EXPOSE 8080
CMD ["/usr/local/src/apache-tomcat-8.5.57/bin/catalina.sh","run"]
五、把jdk,tomcat,Dockfile还有war包放在共享文件夹的同一目录下,使用cd命令进入该文件夹中执行以下操作
1、#使用命令创建镜像#
docker build -t 镜像名称:镜像版本 ./
2、#启动镜像并生成容器运行#
docker run -d -p 8080:8080 ims:0.0.1
#ims为镜像名称、0.0.1为版本号#
3、#启动浏览器输入地址,可以正常显示项目首页完成!!!#
http://*.*.*.*:端口/IMS/main/showHome.do
##加入启动项目报jdbc异常,请关闭防火墙试试(systemctl stop firewalld.service)##