使用docker部署springboot项目

Posted kingtl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker部署springboot项目相关的知识,希望对你有一定的参考价值。

1、Docker

在安装docker前,先安装docker的包

sudo yum install -y yum-utils   device-mapper-persistent-data   lvm2

配置docker的仓库,从docker官方仓库下载会太慢,我们就将仓库配置到阿里云(类似于maven的仓库配置)

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

安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io

要继续配置一下阿里云镜像加速,按如下步骤完成即可.

步骤2,是写配置文件

mkdir -p /etc/docker
#配置文件格式
vim /etc/docker/daemon.json


systemctl daemon-reload
systemctl restart docker


步骤2的配置文件格式

{
  "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
}


自己的编码如何查看,网址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

技术图片

开启docker

sudo systemctl start docker

跑一个docker版的helloworld,类似于java的hello,证明安装成功

sudo docker run hello-world

出现下图内容,表示docker运行成功

技术图片

2、服务器配置

服务器配置总结为三个,防火墙,端口,和安全组

1、查看防火墙状态,如未开启要开启防火墙

firewall-cmd --state

技术图片

2、如果没有开启,开启防火墙的命令

systemctl start firewalld.service

3、添加对外开放的端口,我是开了三个端口,一个80(Http端口),一个8080(tomcat),一个3306(mysql)

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent

4、开完端口,要重新加载防火墙

firewall-cmd --reload

5、 查看开放的端口

firewall-cmd --list-ports

技术图片

6、配置安全组:百度如何配置进入配安全组的地方,按照下图配置的条件配置即可

技术图片

技术图片

3、安装MySQL

1、从docker hub上查找mysql镜像

docker search mysql

2、从docker hub上拉取mysql,我拉取的mysql版本是mysql5.7

docker pull mysql:5.7

3、运行mysql,开放的端口是3306,密码是123456, -d是后台运行

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4、docker ps -a 查看容器创建成功

技术图片

连接服务器上的MySQL

技术图片

执行对应的SQL脚本,创建对应的数据库

4、将SpringBoot项目打成jar包

1、将applicayion.yml中的url中的localhost改成你服务器的公网ip,还有将密码改成你服务器上mysql的密码

技术图片

2、打包的命令有两个,mvn clean ,mvn package

技术图片

3、在target文件夹出现jar表示成功

技术图片

5、编写Dockfile文件

1、将springboot jar包项目打包成Docker镜像,需要在 /home 目录下创建docker文件夹

mkdir /home/docker 

2、使用xftp上传jar包

技术图片

3、编写Dockerfile文件

vim Dockerfile

4、完整命令, vim的使用方法:点击i开始编写,编写完后点击esc,点击冒号,输入wq保存

FROM java:8
ADD blog-0.0.1-SNAPSHOT.jar /blog.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/blog.jar"]

解释

#注意,docker命令全部大写,这是规定。
#   From 关键字表示,jar包依赖的环境。java:8  相当于jdk1.8
FROM java:8
 
#ADD命令 
#   blog-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。
#   /blog.jar:这是自定义的名称。但是注意要有之前的/
ADD blog-0.0.1-SNAPSHOT.jar /blog.jar
 
#MAINTAINER  作者名称。可以删除不写。
MAINTAINER zhangxiaosan
 
#EXPOSE 项目暴露的端口号
EXPOSE 8080
 
#/blog.jar此处的名称要和ADD命令后面的一样。
ENTRYPOINT ["java","-jar","/blog.jar"]

5、在docker文件夹下执行如下命令

docker build -t blog:1.0 .

解释

说明:
  blog   代表要打包成的镜像名称。按照自己实际情况写。
  :1.0   代表版本号,可以不写则默认为latest
  .    代表为当前目录。这就是为什么一直在步骤一文件夹中进行操作,并且Dockerfile在此文件夹中的原因。
 
若之前Dockerfile不在步骤一的文件夹中 则需要指定到对应的地址。

技术图片

6、接下来用docker images 就可以查看到这个镜像已经被创建好了,接下来运行这个镜像就可以了

docker run --name blog -d -p 80:8080 blog:1.0

技术图片

7、可以查看容器运行时的日志的命令

docker logs 容器id

技术图片

8、 就可以进行服务器ip地址进行访问了,如果绑定了域名,就可以用域名进行访问

以上是关于使用docker部署springboot项目的主要内容,如果未能解决你的问题,请参考以下文章

docker部署springboot项目

docker部署springboot

使用Docker部署SpringBoot

Docker Compose部署Springboot+Mysql项目

Docker Compose部署Springboot+Mysql项目

SpringBoot 部署 docker 打包镜像