文章目录
2021-10-28 17:38:02 星期四
linux中搭建JavaWeb环境
默认环境为centOS7
JDK:jdk-8u301-linux-x64
除必要软件,尽量用docker部署
本教程操作环境在华为云服务器上。尽可能写一个适用过多环境的教程!
基础环境更新
镜像站
华为云鲲鹏镜像站地址:
https://mirrors.huaweicloud.com/home
华为镜像站yum源:
https://repo.huaweicloud.com/centos/
配置镜像站yum源
使用阿里yum源
官方参考教程
# root登录系统
yum update -y # 配置yum源之前更新命令
yum upgrade -y # 配置yum源之前升级命令
#备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
#配置阿里镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
##或
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#使用华为镜像源#同上
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
##鲲鹏服务器需要使用鲲鹏镜像源
##鲲鹏官方教程设置不能正常使用,推荐使用[优秀教程](https://blog.csdn.net/hmjwfsoft01/article/details/106021588 "教程")
#生成缓存
##清除之前的缓存
yum clean all
##生成缓存
yum makecache
yum list
#其他
#非阿里云ECS用户会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 信息,不影响使用。用户也可自行修改相关配置: eg:
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
#验证
# 配置好yum源后,可以直接执行yum安装
yum install junit
基础操作
# 配置镜像站yum源之后,应使用下面命令升级系统:
yum upgrade -y --skip-broken
# 安装基本软件
yum install -y zip gzip bzip2 lbzip2
# 安装解压缩命令
yum install -y lrzsz
# 安装rz、sz上传下载命令
# 设置vim
vim /etc/vimrc
# 增加:
set ts=4
set expandtab
set nu
# 设置tab键为4个空格,显示行号
#编码方式
# 查看当前语种
echo $LANG
en_US.UTF-8 # 系统默认en_US.UTF-8
添加管理员账户
# 添加管理员账户,并设置密码,设置sudo权限
adduser ceht
passwd ceht
chmod -v u+w /etc/sudoers
vim /etc/sudoers
# 在 root 下面增加内容
root ALL=(ALL) ALL
ceht ALL=(ALL) ALL
chmod -v u-w /etc/sudoers
# 保护sudoers文件
基础环境安装
安装JDK
华为云服务器将替换OpenJDK为原版JDK
#查询是否有安装jdk
rpm -qa | grep java
# 如果有删除全部,noarch文件可以不用删除
#案例,eg:rpm -e --nodeps java-1.8.0-openjdk-xxx;看查看命令的结果
# 例如,逐个删除
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.aarch64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.aarch64
rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.252.b09-2.el7_8.aarch64
# 再次检查
java -version
# 确认删除完毕
#输出应为:bash: java: command not found
#安装jdk
# 安装jdk1.8,首先创建一个java的文件夹
mkdir /usr/local/java
#将安装包上传/usr/local/java/目录下
# 百度链接:https://pan.baidu.com/s/1YRxv1HmSdwV-DaCbSMLy8Q 提取码: qnc4
# 解压
cd /usr/local/java/
#解压
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/java/
配置环境变量
vi /etc/profile
在/etc/profile
文件的末尾加上以下配置:
JAVA_HOME=/usr/local/java/jdk1.8.0_301
JRE_HOME=/usr/local/java/jdk1.8.0_301/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
使修改后的/etc/profile
文件立即生效:
source /etc/profile
#验证
java -version
#若输出java版权信息,则配置成功
安装与配置docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
本文介绍 Docker CE 的安装使用。
- 移除旧的版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
- 安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新 yum 缓存:
# centos 7
sudo yum makecache fast
# CentOS 8没有fast这个命令
sudo yum makecache
- 安装 Docker-ce:
sudo yum -y install docker-ce
- 查看已安装docker版本
docker version
- 启动 Docker 后台服务
sudo systemctl start docker
- 开机启动
sudo systemctl enable docker
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决。
可以使用阿里云的docker镜像地址:https://7qyk8phi.mirror.aliyuncs.com
新版的 Docker 使用 /etc/docker/daemon.json
(Linux,没有请新建)。
请在该配置文件中加入:
(没有该文件的话,请先建一个)
{
"registry-mirrors": ["https://7qyk8phi.mirror.aliyuncs.com"]
}
注意:使用vi如果不按i,直接粘贴进去在不是首字母的位置也会丢失字符
操作是先按i,进入编辑模式,再粘贴
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info
,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors: https://7qyk8phi.mirror.aliyuncs.com/
下载docker-compose
#运行此命令以下载 Docker Compose 的当前稳定版本sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose#对二进制文件应用可执行权限sudo chmod +x /usr/local/bin/docker-compose#测试安装docker-compose --version#若有docker-compose version 1.29.2, build 5becea4c,则安装成功
下载docker-compose
#运行此命令以下载 Docker Compose 的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#对二进制文件应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose
#测试安装
docker-compose --version
#若有docker-compose version 1.29.2, build 5becea4c,则安装成功
安装与配置Nginx
YUM源中没有Nginx,我们需要增加一个nginx的源nginx.repo
- 执行以下命令,在
/etc/yum.repos.d/
下创建 nginx.repo 文件。
vi /etc/yum.repos.d/nginx.repo
- 按 i 切换至编辑模式,写入以下内容。
[nginx]
name = nginx repo
baseurl = https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
enabled = 1
- 按 Esc,输入 :wq,保存文件并返回。
查看Nginx是否配置成功
yum list nginx
# 查看nginx列表
yum list |grep nginx
- 执行以下命令,安装 nginx。
yum install -y nginx
安装的就是Nginx官网的最新版本
测试是否安装成功
#启动Nginx
nginx
可以使用curl命令查看是否安装成功
curl 127.0.0.1
如果安装成功的话,就会看到输出一个HTML的一个反馈
开机启动设置
systemctl enable nginx
# 重载可以先不急,等其他环境弄好了再执行
systemctl daemon-reload
安装配置maven
yum安装与配置
yum install -y maven
# 验证安装|查看安装版本
mvn -v
# 编辑配置文件
vim /etc/profile
# 在文末增加如下内容
M2_HOME=/usr/local/maven
MAVEN_HOME=/usr/local/maven
PATH=$MAVEN_HOME/bin:$PATH
export M2_HOME MAVEN_HOME PATH
# 使环境变量配置生效
source /etc/profile
echo $MAVEN_HOME
mvn -v
# 设置settings.xml
vim /usr/local/maven/conf/settings.xml
上传压缩包解压安装
这⾥下载的是 apache-maven-3.6.3-bin.tar.gz
安装包,并将其放置于提前创建好的 /coe/soft/maven
⽬录下。
执⾏命令解压之:
即可在当前⽬录得到 /code/soft//maven/apache-maven-3.6.3
⽬录
配置MAVEN加速镜像源
以上传压缩包解压为例。
这⾥配置的是阿⾥云的maven镜像源。
编辑修改 /code/soft/maven/apache-maven-3.6.3/conf/settings.xml
⽂件,在 标签对⾥添加如下内容即可:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
配置环境变量
因为下载的是⼆进制版安装包,所以解压完,配置好环境变量即可使⽤了。 编辑修改 /etc/profile
⽂件,在⽂件尾部添加如下内容,配置 maven
的安装路径
export MAVEN_HOME=/code/soft/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
接下来执⾏ source /etc/profile
来刷新环境变量,让 maven 环境的路径配置⽣效,
检验安装结果
执⾏ mvn –v
,能打印出 maven 版本信息说明安装、配置成功
安装配置tomcat(docker方式)
Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。
是把宿主机目录挂载到容器中!!
都是符合源–>目的
#拉取镜像
docker pull tomcat
#一步到位
docker run --name tomcat -d -p 8080:8080 -v /code/docker/tomcat/webapps:/usr/local/tomcat/webapps /code/docker/tomcat/logs:/usr/local/tomcat/logs /code/docker/tomcat/conf:/usr/local/tomcat/conf tomcat
#分步操作
#需要查看容器使用的是webapps还是webapps.dist
docker run --name tomcat -p 8080:8080 -d 镜像名
#进入容器对应的目录
docker exec -it 容器id bash
//案例
docker exec -it 8d2dfd09a912 bash
#合并webapps.dist、webapps两个为webapps
rm -rf webapps
mv webapps.dist webapps
//**复制**,启动tomcat容器中的三个常用目录 conf、webapps、logs 用于挂载宿主机
docker cp tomcat:/usr/local/tomcat/webapps.dist /code/docker/tomcat
docker cp tomcat:/usr/local/tomcat/conf /code/docker/tomcat
docker cp tomcat:/usr/local/tomcat/logs /code/docker/tomcat
//容器id方式,eg:
docker cp ef98df012ffa:/usr/local/tomcat/webapps /code/docker/tomcat
docker cp ef98df012ffa:/usr/local/tomcat/conf /code/docker/tomcat
docker cp ef98df012ffa:/usr/local/tomcat/logs /code/docker/tomcat
//停止并移除tomcat--容器,移除镜像用rmi
docker stop tomcat
docker rm tomcat
//挂载
docker run --name tomcat -p 8080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps -v $PWD/logs:/usr/local/tomcat/logs -v $PWD/conf:/usr/local/tomcat/conf -d 855ce409ba9e
#如果使用自定义目录挂载,使用下面这条命令;镜像名或镜像id都可以
docker run --name tomcat -p 8080:8080 -v /code/docker/tomcat/webapps:/usr/local/tomcat/webapps -v /code/docker/tomcat/logs:/usr/local/tomcat/logs -v /code/docker/tomcat/conf:/usr/local/tomcat/conf -d tomcat
修改已创建容器配置
//设置开机自启动--已创建容器
docker update --restart=always tomcat
永久解决webapps.dist文件夹及首页404问题
docker创建tomcat容器,在tomcat 下面有 webapps 和 webapps.dist 两个文件夹。只需要webapps就可以了,还会导致首页404问题。
前面已经解决了问题,但是下次再去运行一个新的 Tomcat 的时候还是会出现同样的问题。如何永久解决呢?
可以在上面修改后的基础上使用 docker commit
提交容器副本使之成为一个新的镜像。
docker commit :从容器创建一个新的镜像。
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
#示例
docker commit -m="修复404" -a="libai4hao" 5570adbe1c04 my_tomcat:1.0
#再次查看镜像,发现镜像my_tomcat:1.0已经提交到本地了
docker images
#将my_tomcat:1.0镜像推送到docker hub仓库中去
# docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
#首先是登录docker hub (id=xx,密码=xx)
docker login
#推
docker push libai4hao/my_tomcat:1.0
#提示,找不到,需要镜像改名。在名称前加上自己的docker hub的Docker ID,即libai4hao
#案例
docker tag b625b7b88397 libai4hao/my_tomcat:1.0
#验证
docker images
#再次进行推送(注意:下面的1.0的tag标签可以不打,默认是latest)。推送操作时间稍微会有一点长,耐心等待~
docker push libai4hao/my_tomcat:1.0
提交成功后,下次直接运行这个镜像就不会报 404 了。
登录自己的Docker Hub ,在Repositories里面就可以看到自己在上面推送的镜像libai4hao/my_tomcat:1.0
了,这是个对外的镜像,可以在网络上下载。
在Docker hub上可以看到这个镜像的下载命令(注意下载时跟上tag标签,如果是latest的默认tag可以不跟)
也可以直接在Docker hub上删除这个镜像(Repositories-镜像-Settings-delete)
在另一台服务器上下载这个镜像,只需要输入
docker pull libai4hao/my_tomcat:1.0
在本机删除该镜像
docker images
#可以看到有两个相同镜像id的镜像,此时直接使用这个镜像ID是删除不掉的
#应该先删除docker tag改名前的镜像,使用镜像名称删除。(一般在docker tag镜像改名后,最好删除改名前的镜像)
docker rmi my_tomcat:1.0
#查看
docker images
#此时,就可以删除改名后的镜像了
docker rmi 镜像id
安装mysql(docker方式)
对于轻量级使用docker方式更方便快捷