linux docker安装jdk+mysql+redis并运行后端jar包

前提:linux服务器安装了centos和docker

docker安装jdk并运行后端jar包

参考博客

文件准备
通过WinSCP将jdk-8u181-linux-x64.tar.gz安装包扔到服务器root/software(自建)下
Dockerfile文件自建(我这里自建,与jdk安装包一起扔到服务器同一目录),或是通过命令vi Dockerfile创建,内容如下

FROM centos
MAINTAINER zengbaihua
RUN mkdir /usr/local/jdk1.8
WORKDIR /usr/local/jdk1.8
ADD jdk-8u181-linux-x64.tar.gz /usr/local/jdk1.8

ENV JAVA_HOME /usr/local/jdk1.8/jdk1.8.0_181
ENV JRE_HOME /usr/local/jdk1.8/jdk1.8.0_181/jre
ENV PATH $JAVA_HOME/bin:$PATH

在这里插入图片描述
进入文件

# 路径
cd /root/software
# 解压
tar  -zxvf jdk-8u181-linux-x64.tar.gz 

创建Dockerfile文件(如上文自建了请忽略这一步骤)

vi Dockerfile

文件内容如下,路径一定要对好, 以及解压后的文件夹jdk1.8.0_181看自己的文件名改正

FROM centos
MAINTAINER zengbaihua
RUN mkdir /usr/local/jdk1.8
WORKDIR /usr/local/jdk1.8
ADD jdk-8u181-linux-x64.tar.gz /usr/local/jdk1.8

ENV JAVA_HOME /usr/local/jdk1.8/jdk1.8.0_181
ENV JRE_HOME /usr/local/jdk1.8/jdk1.8.0_181/jre
ENV PATH $JAVA_HOME/bin:$PATH

构建镜像

docker build -t jdk1.8 . -f Dockerfile

将打包好的springboot项目jar包扔到服务器,项目运行端口为10000
在这里插入图片描述
构建容器

docker run -d --restart=always -v /root/ghyExploit/publishProject/jar:/jar -p 10000:10000 --name reservoirs jdk1.8 java -jar -Duser.timezone=GMT+08 /jar/reservoirs-0.0.1-SNAPSHOT.jar

注意:端口得和jar包中的运行端口[10000]一致:-p 10000:8080都不行,否则jar包运行后无法通过端口10000访问
命令含义:
-d 后台运行
–restart=always 开机启动
-v /root/ghyExploit/publishProject/jar:/jar 宿主机 /root/ghyExploit/publishProject/jar下的jar映射到容器/jar下
-p 10000:10000为端口映射:前表示主机部分,:后表示容器部分
–name reservoirs 容器名称,我取名为reservoirs
jdk1.8 上面的镜像名
java -jar -Duser.timezone=GMT+08 /jar/reservoirs-0.0.1-SNAPSHOT.jar 启动jar包

以后项目发布,通替换宿主机 /root/ghyExploit/publishProject/jar下的jar包,重启容器 docker restart reservoirs 即可

测试部分

# 构建容器
docker run -d --restart=always --name test-jdk -p 8081:8080 -it jdk8 /bin/bash
# 进入容器
docker exec -it test-jdk bash
# 测试
java -version
# 退出容器 
exit

在这里插入图片描述
即为安装成功

使用到的相关命令

# 查看镜像
docker images
# 删除镜像(删除镜像前得删除容器)
docker rmi 镜像id(镜像名称)
# 查看正在运行容器命令
docker ps
# 查看全部容器命令
docker ps -a
# 删除容器(删除容器前得停止容器)
docker rm 容器id(容器名称)
# 停止容器
docker stop 容器id(容器名称)
# 启动容器
docker start 容器id(容器名称)
# 重启容器
docker restart 容器id(容器名称)
# 进入容器
docker exec -it 容器id(容器名称) bash
# 退出容器 
exit
# 查看容器的实时日志 
docker logs -f 容器id(容器名称) | docker logs -f --tail 500 容器id(容器名称)
# 使用 inspect 命令查看镜像详细信息
docker inspect 容器id(容器名称)
# 访问url
curl localhost:8080
# 查看端口使用情况
netstat -ntlp
# 开机自启动设置
在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
docker run ****** --restart=always
如果docker容器已经启动了则可以使用如下命令:
docker update 容器id(容器名称) --restart=always
# 文件操作相关命令
vim 退出命令(保存、放弃保存)
按ESC键 跳到命令模式,然后输入:
:w            - 保存文件,不退出 vim
:w file      -将修改另外保存到 file 中,不退出 vim
:w!          -强制保存,不退出 vim
:wq          -保存文件,退出 vim
:wq!        -强制保存文件,退出 vim
:q            -不保存文件,退出 vim
:q!          -不保存文件,强制退出 vim
:e!          -放弃所有修改,从上次保存文件开始再编辑

通过查看容器的实时日志可以看到jar包是否正常运行,若springboot项目其他服务已经安装(如项目使用到的数据库、redis等),jar包正常运行,便可以通过浏览器访问后台了

Docker安装MySQL 5.7

参考博客

# 查看docker仓库中的mysql
docker search mysql
# 选定需要pull到本地系统中的镜像版本
docker pull mysql:5.7
# 查看镜像是否已安装
docker images
# 运行名为mysql5.7的容器,若需要自定义端口: -p [自定义端口]:3306
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
# 查看容器是否运行
docker ps
# 进入容器
docker exec -it mysql5.7 bash 
# 登录mysql
mysql -h localhost -u root -p
接着输入密码root
登录成功后即为安装成功了

登录成功:
在这里插入图片描述
命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码

此时可以通过windows的mysql可视化工具进行连接,将数据库扔到该linux服务器
若远程连接不上数据库,可以尝试设置mysql远程权限

# 设置mysql远程权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 刷新权限
flush privileges;

在这里插入图片描述
在这里插入图片描述

Docker安装Redis

参考菜鸟教程

# pull最新版本redis镜像
docker pull redis:latest
# 查看镜像是否已安装
docker images
# 运行名为redis的容器并配置密码
docker run -itd --name redis -p 6379:6379 redis --requirepass "mypassword"
# 查看日志是否运行正常
docker logs -f redis

在这里插入图片描述
注意:项目中的redis配置,host得为linux服务器的具体ip,不得使用127.0.0.1,不然项目无法连接linux上部署的redis服务,报错:io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值