docker部署jar包应用与nginx代理[CentOS]

写在前头:该博客仅适用于初学者,没使用docker compose,重新部署也是最low的重启容器,笔者太菜,需要进阶请移步其他博客

步骤一:购买服务器

没什么好说的,阿里云华为云腾讯云之类的都可以(学习的话试用的2核2G够了),以购买实例后出现以下页面为标志(以下以阿里云为例)。

在这里插入图片描述

步骤二:重置密码与修改安全组

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/68315db35f9f4601b66ffdf1851cc2d0.png

步骤三:建立与服务器间连接

主流工具基本都可以,最好用允许文件传输的。以下仅演示一种

Xshell + Xftp

官网链接
Xshell: https://www.xshell.com/zh/xshell/
Xftp: https://www.xshell.com/zh/xftp/

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

步骤四:安装docker

# 1.卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 2.需要的安装包
sudo yum install -y yum-utils

# 3.设置镜像仓库(非必须)
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
# 更新yum软件包索引(安装前的工作,非必须)
yum makecache fast
 
# 4.安装docker docker-ce:社区版的,docker-ee:企业版的
sudo yum install docker-ce docker-ce-cli containerd.io

# 5.启动docker,并设置为开机自启动(非必须)
systemctl start docker
systemctl enable docker
 
# 6.查看docker版本
docker version 

在这里插入图片描述

步骤五:部署Jar包应用

# 安装必要的镜像(openjdk)
# docker pull openjdk[:xx],其中xx为想要的jdk版本,不加:xx的话默认下载最新版
docker pull openjdk:17

# 查看当前已安装的镜像列表
docekr images

在这里插入图片描述

# 创建Dockerfile文件并将内容填充如下
# 以openjdk:17镜像为基础(所以请确保上一步切实完成)
FROM openjdk:17

# 用同目录下的任意名称jar包覆盖openjdk:17/app.jar(所以请确保Dockerfile文件和jar包文件在同一目录)
COPY *.jar /app.jar

# 添加开放端口号(请改为你的jar包运行后监听的端口号)
CMD ["--server.port=8081"]

# 暴露端口号,同上更改
EXPOSE 8081

# 添加java运行指令,相当于程序启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

在这里插入图片描述

# 切换至刚刚记下的目录 
cd /root/poolpal/server

# build为创建新镜像指令,docker会在工作目录检测Dockerfile文件,并根据其内容创建新镜像
# -t xxxxxx 表示将要创建的镜像的名字
# 最后的'.'表示工作目录为当前目录(所以其实可以直接写刚刚记下的目录而不用切换)
docker build -t xxxxx .

# 检查新镜像是否创建成功
docker images

# 根据该镜像创建新容器并启动
# -d 表示该容器为后台容器
# --name 表示容器名
# -p xxx:yyy 表示将容器内的yyy端口暴露为xxx端口,即外部访问时用xxx可以访问到容器内的yyy(所以服务器安全组要开放的是xxx而不是yyy)
docker run -d \
    --name poolpal-server \
    -p 8081:8081 \
    poolpal-server

# 查看容器是否正常运行
docker ps

在这里插入图片描述

额外步骤一:jar包更新时快速部署

在这里插入图片描述

# 在Xshell中输入以下所有命令即可(简单来说就是关了重新创建,当然名字记得改成自己的,改完可以把这些命令存在电脑上)
cd /root/poolpal/server

docker stop poolpal-server

docker rm poolpal-server

docker rmi poolpal-server

docker build -t poolpal-server .

docker run -d \
    --name poolpal-server \
    -p 8081:8081 \
    poolpal-server

步骤六:部署nginx并代理vue项目

# 下载必要镜像nginx
docker pull nginx

# 查看是否下载成功
docker images

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

# 先简单启动下容器
docker run nginx

# 将容器nginx.conf文件复制到宿主机 (后面的路径记得改成自己的)
docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf

# 将容器conf.d文件夹下内容复制到宿主机 (后面的路径记得改成自己的)
docker cp nginx:/etc/nginx/conf.d /root/nginx/conf/conf.d

# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/

# 关闭并删除容器
docker stop nginx
docker rm nginx

# 启动容器
# -p xxx:yyy 表示将容器内的yyy端口暴露为xxx端口,即外部访问时用xxx可以访问到容器内的yyy(所以服务器安全组要开放的是xxx而不是yyy)
# -v 为数据卷挂载,可以做到在主机中修改对应文件内容即可同步至容器内
# --restart 设置自动重启
# --name 容器名字
# 最后的nginx为容器基于的镜像名
docker run -d -p 8090:80 \
-v /data/docker/nginx/html:/usr/share/nginx/html:ro \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/log:/var/log/nginx \
--restart=always \
--name xxxx \
nginx

# 检查容器是否正确启动
docker ps

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

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值