使用Docker部署SpringBoot 项目全流程记录,超详细!

引言

我的linux环境为:
centos:7
服务器在国外,所以有一些操作像阿里云的端口安全组设置就不需要操作

需要的软件

  1. xshell(用来连接linux服务器)
  2. xftp或fileZilla用来给linux服务器上传文件
  3. sqlyog(或者navicat)在服务器上解析.sql脚本
  4. maven(idea自带) 用来打包

安装Docker

官网对系统的要求

OS requirements
To install Docker Engine, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested.
The centos-extras repository must be enabled. This repository is enabled by default, but if you have disabled it, you need to re-enable it.
The overlay2 storage driver is recommended.

要求版本Centos7, 其版本不支持或未测试
经过我测试,的确在安装时会遇到依赖的错误所以干脆将Centos6 换成Centos7

安装和设置仓库

官方教程

 sudo yum install -y yum-utils

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

这个仓库是官方的,如果太慢的换,换成阿里云镜像:
需要配置文件
可以自行百度

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

若要安装特定版本

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

例如要按照 docker-ce.x86_64 18.06.1.ce-3.el7
<VERSION_STRING> docker-ce-18.06.1

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

开启docker

sudo systemctl start docker

跑一个docker版的helloworld,类似于java的hello,测试是否安装成功

sudo docker run hello-world

成功样式

安装mysql

从docker hub上查找mysql镜像

docker search mysql

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

docker pull mysql:5.7

docker volume create mysql_data 创建数据挂载点(即存储数据的地方,这样即便mysql容器删除了,数据还是在)

docker volume create mysql_data 

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

docker run --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

docker ps 查看容器创建成功

在这里插入图片描述
进入mysql 的容器内

docker exec -it 容器的id /bin/bash

进入mysql,
在这里插入图片描述
当可以进入时,说明mysql 没问题了,

通过docker restart 镜像名 可以重启镜像

docker restart mysql

使用navicat 远程连接数据库

在这里插入图片描述

运行本地的.sql 文件, 将远程数据库中增加数据

将springboot项目打成jar包

注意将applicayion.yml中密码改成你服务器上mysql的密码

在这里插入图片描述

在这里插入图片描述

打包后在target下会生成一个jar包

在这里插入图片描述

编写Dockfile文件

在 /home 目录下创建docker文件夹

mkdir /home/docker 

使用xftp上传jar包
在这里插入图片描述

编写Dockerfile文件
在这里插入图片描述

vim Dockerfile

完整命令, vim的使用方法:点击i开始编写,编写完后点击esc,点击冒号,输入wq保存
在这里插入图片描述

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

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

docker build -t emsdemo:1.0 .

在这里插入图片描述

运行镜像

docker run -it --net=host --name emsdemo -d -p 80:8081 emsdemo:1.0

在这里插入图片描述

至此全部完成.
在浏览器访问就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值