Docker部署JavaWeb应用
创始人
2024-04-03 14:04:14
0

目录

🧡拉取镜像

🧡安装相关组件

🧡部署应用

🧡顺利运行


💟这里是CS大白话专场,让枯燥的学习变得有趣!

💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话!

💟好记性不如烂键盘,自己总结不如收藏别人!

💌本篇讲解如何在Docker中运行一个JavaWeb应用(魔改牛客网的项目)~~

🧡拉取镜像

💌一开始想直接用tomcat镜像部署的,但是在tomcat里安装其他组件出了很多问题,因此直接拉取centos镜像构建一个小型centos系统,访问端口为8080。拉镜像的命令之前已经讲过啦,可以看往期博客~

  

🧡安装相关组件

💌进入centos系统安装如下需要的组件:

🍠JRE

yum install -y java-1.8.0-openjdk.x86_64
yum install -y java-devel

 🍠Maven:也可以本地下载完复制进去,记得修改环境变量。

wget -i -c https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zvxf apache-maven-3.6.3-bin.tar.gz -C /optvim /etc/profileexport PATH=$PATH:/opt/apache-maven-3.6.3/binsource /etc/profile

 修改 Maven 镜像:

cd /opt
cd apache-maven-3.6.1/
cd conf
vim settings.xmlalimavenaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/*

🍠MySQL:docker对镜像做了一些隔离和限制,在centos镜像构建的容器内安装不了MySQL,因此我们又拉取了mysql的镜像将数据库分离出来,开放3306端口使其可以外部访问,在mysql容器内进行如下操作:

systemctl start mysqld.service
grep "password" /var/log/mysqld.log //查询root密码
mysql -uroot -p//修改密码
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

之后将数据库文件复制到mysql容器内就可以使用啦!可以用Navicat测试一下~

🍠Redis

yum install -y redis.x86_64
systemctl start redis
systemctl status redis

 🍠Kafka

wget -i -c https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz
tar -zvxf kafka_2.13-2.7.0.tgz -C /opt
cd /opt
cd kafka_2.13-2.7.0/
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &

 🍠Elasticsearch

wget -i -c https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz
tar -zvxf elasticsearch-6.4.3.tar.gz -C /opt
wget -i -c https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
unzip -d /opt/elasticsearch-6.4.3/plugins/ik elasticsearch-analysis-ik-6.4.3.zipcd /opt
cd elasticsearch-6.4.3/
cd config/
vim elasticsearch.yml

vim jvm.options //修改内存占用-Xms236m
-Xmx512m//创建一个普通用户,并赋予相关权限
cd /opt/elasticsearch-6.4.3/
cd config/
groupadd normal
useradd normal1 -p 123456 -g normalcd /opt
chown -R normal1:normal *
cd /tmp
chown -R normal1:echoer *//启动
su - normal1
cd /opt/elasticsearch-6.4.3/
bin/elasticsearch -d//测试
su - // 切回root用户
curl -X GET "localhost:9200/_cat/health?v"

🍠Tomcat

wget -i -c https://downloads.apache.org/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.tar.gz
tar -zvxf apache-tomcat-9.0.41.tar.gz -C /opt
vim /etc/profileexport PATH=$PATH:/opt/apache-tomcat-9.0.41/binsource /etc/profile
startup.sh

 🍠Nginx

yum install -y nginx.x86_64   
vim /etc/nginx/nginx.conf //配置服务器地址
systemctl start nginx

🧡部署应用

💌修改程序中相关地址:

 💌把 Tomcat 自带的项目删了,然后将要部署的JavaWeb应用打包成名为ROOT的war包,然后将ROOT.war复制到tomcat安装路径下的webapps文件夹中。复制完需要重新启动一下Tomcat!

shutdown.sh
startup.sh

🧡顺利运行

💌可以看到两个容器都正常运行啦~

💌通过服务器地址也能正常访问~

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...