文章目录
写在前头:该博客仅适用于初学者,没使用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