Docker:从0到1部署后端项目

909 阅读3分钟

一、前言

本文撰写目的在于帮助开发成员部署后端项目,采用容器化技术Docker,成功部署上线后,可以通过网络地址访问后端项目。注意本文仅展示实操过程,不探讨技术原理,感兴趣的读者可以自行学习相关知识。

二、前置准备

1、服务器

本文以腾讯云服务器为例,购买学生版轻量级服务器(土豪随意)。

进入cloud.tencent.com/act/campus ,购买轻量应用服务器,自选时长,实名认证后,选择CentOS 7镜像。

微信图片_20230313204548.png

image.png

进入控制台,选择轻量应用服务器,重置密码,填写自己的密码

image.png

2、XSHELL和XFTP

进入www.xshell.com/zh/free-for… ,认证家庭版(土豪同样随意),选择两者都需后下载

image.png

3、后端项目

一个可以正常运行的后端项目,配有Maven

image.png

三、连接服务器

(1)打开XSELL,选择新建会话

image.png

(2)填写自定义的会话名称,填写购买服务器的ip地址,通过腾讯云查看

image.png

(3)点击确定,点击连接,弹出账户输入框,如果重置密码时没有修改账户,则默认为root

image.png

(4)点击确定,输入自己的密码

image.png

(5)出现以下信息即为连接成功

image.png

四、安装Docker

1、环境查看

确保系统内核是3.10以上,查看命令:uname -r

1678791715106.png

确保系统版本正确(centos7),查看命令:cat /etc/os-release

1678791848390.png

2、安装Docker

(1)下载需要的安装包,命令:yum install -y yum-utils

image.png

(2)设置镜像仓库,命令:

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

image.png

(3)安装Docker社区版,命令:yum install docker-ce docker-ce-cli containerd.io

安装过程中选择会问你is this ok,输入y

image.png

出现以下信息则为安装成功

image.png

(4)启动Docker,命令systemctl start docker

(5)查看Docker版本,命令:docker version

image.png

(4)配置阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors":["https://qiyb9988.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

五、编写Dockerfile文件

打开idea,右键项目,新建文件,命名为Dockerfile,输入以下内容。

注意: java版本需要与自己的java版本对应,自定义端口号时,需要到服务器防火墙中开放对应的端口。

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=80"]

EXPOSE 80

ENTRYPOINT ["java","-jar","/app.jar"]

六、打包并传输后端项目

(1)打开idea,在右侧Maven中选择生命周期,选择package,打包完成后target文件夹中会出现XXX.jar文件

image.png

打包完成后:

image.png

(2)在XSHELL上方工具栏中选择XFTP

image.png

(3)在右侧home文件夹中新建idea文件夹用于保存项目

image.png

(4)在左侧找到项目所在位置,打开target文件夹,将打包完的XXX.jar和编写的Dockerfile文件拖至右侧idea文件夹中

image.png

(5)进入XSHELL,进入idea目录:cd /home/idea

image.png

(6)构建项目镜像: docker build -t 自定义镜像名称 .

例如:docker build -t mis .,特别注意最后有一个点

image.png

(7)启动容器:docker run -d -p 端口号:端口号

例如:docker run -d -p 80:80 -name mis mis

image.png

(5)查看容器:docker ps

查看所有容器,包括未能成功启动的:docker ps -a

image.png

(6)访问接口:http://ip地址:端口号/controller接口

例如:http://119.178.9.170/user/index (仅做格式展示用,不能访问)

image.png

到这里如果没问题,那恭喜你成功部署完成了

以下为重新部署的步骤:

(1)docker ps查看容器

(2)复制容器id

(3)docker stop 容器id停止运行

(4)docker rm 容器id移除容器

(5)重新进行四的步骤(最好将空镜像也一并删除)

五、结语

本文展示的仅为部署后端HelloWorld级别的项目,实际部署过程中,还需要额外安装MySQL ,Redis等中间件,读者可以参考其他文章自行部署。