本地虚拟机安装Docker部署spring boot 项目jar包

虚拟机VMware安装Cent OS 7

由于 苦“X”/(ㄒoㄒ)/~~实习中,凑不够续租云服务器的月费迫不得已只能选择在自己电脑装一个Linux虚拟机来学习用Docker 部署简单的项目,由于VMware这个软件是之前为了上课就已经装过了,这里就不介绍虚拟机的安装教程了,需要的话可以自行去查下度娘自己安装一个,很多大佬的安装教程都很详细的,给第一次安装或接触虚拟机的朋友的小建议,记得在安装的时候勾选上GUI界面的选项……

这里放上阿里云的Cent OS 7镜像的下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/

本地虚拟机安装Docker部署spring boot 项目jar包_第1张图片

几个版本都有所不同,可以度娘一下几个版本都有哪些区别,学习的话下载红框这一个就可以了。

安装成功进入系统即可本地虚拟机安装Docker部署spring boot 项目jar包_第2张图片

虚拟机的Linux环境部署好之后,咱们进入正题

安装 Docker

Docker 官方文档地址: https://docs.docker.com/engine/install/centos/

Docker Hub地址(存放镜像的仓库,类似于Github、Gitee):https://hub.docker.com/

  1. 根据官网的文档,第一步卸载旧版本(第一次安装的话这步骤可有可无)

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  2. 安装Docker引擎前,设置一下Docker Repository

    sudo yum install -y yum-utils
    

    由于官方是国外的,后续pull镜像的时候会比较慢,建议repo的地址配置成阿里云的地址

    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
    
  3. 安装 Docker Engine

    此命令是可以选择版本安装的,可参考官方文档,这里默认最新

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

    期间需要输入y来确认安装一些包,一路填y即可。

    顺利安装之后,可以配置一下阿里云的容器镜像加速

    # 创建文件夹
    sudo mkdir -p /etc/docker
    
    # 修改配置文件
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://(这里替换成自己的,访问下面的镜像加速地址获取).mirror.aliyuncs.com"]
    }
    EOF
    
    # 重新加载
    sudo systemctl daemon-reload
    
    # 开启Docker
    sudo systemctl restart docker
    

    阿里云镜像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
    本地虚拟机安装Docker部署spring boot 项目jar包_第3张图片

    可以用Docker试着跑一下Hello World,出现如下内容,就证明docker运行成功了,终于成功一大半啦!!!!
    本地虚拟机安装Docker部署spring boot 项目jar包_第4张图片

注意:本地的服务器需要查看一下防火墙是否开启了

# 查看防火墙的状态(running 表示已经开启)
firewall-cmd --state 
# 如果没有开启,建议输入下面的命令开启一下
systemctl start firewalld.service
# 然后开放部分端口,这里开放几个用到的即可
# Http
firewall-cmd --zone=public --add-port=80/tcp --permanent
# tomcat
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# mysql
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 端口开放后 重新加载防火墙
firewall-cmd --reload

# 查看开放端口列表
firewall-cmd --list-ports

接下来 添加MySQL镜像

# 从仓库查询MySQL镜像 
docker search mysql

# 镜像存在即拉取
docker pull mysql:5.7

# 运行MySQL -d:后台运行
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

本地虚拟机安装Docker部署spring boot 项目jar包_第5张图片
本地虚拟机安装Docker部署spring boot 项目jar包_第6张图片

进入MySQL容器内部,exit可以退出容器

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

本地虚拟机安装Docker部署spring boot 项目jar包_第7张图片

能看到 databases的信息即表示MySQL安装成功了

接下来用本地电脑的数据库图形工具连接VMware虚拟机上的MySQL容器

查看虚拟机CentOS的IP地址
本地虚拟机安装Docker部署spring boot 项目jar包_第8张图片本地虚拟机安装Docker部署spring boot 项目jar包_第9张图片

连接成功就可以查看到虚拟机上MySQL容器的库表了。

Spring Boot项目打包

在打包之前先将配置文件application.yml的数据源url的localhost更改为上面查询到的IP地址,数据库的密码也要跟虚拟机容器上的对应上。
本地虚拟机安装Docker部署spring boot 项目jar包_第10张图片

然后将自己的项目通过maven打包成Jar包
本地虚拟机安装Docker部署spring boot 项目jar包_第11张图片

确保自己的项目是正常能跑起来,有时候打包不成功是因为测试类有Bug导致的,可以去检查一下,度娘上很多打包失败的问题是通过跳过测试去解决的,这里我不建议你们这么做,如果上线出Bug就祭天了!!

打包成功后,jar包存放在项目包下的target文件夹本地虚拟机安装Docker部署spring boot 项目jar包_第12张图片

在虚拟机创建一个文件夹存放jar包

mkdir /home/docker 

利用sftp工具将jar包上传到docker目录下
本地虚拟机安装Docker部署spring boot 项目jar包_第13张图片

虚拟机跑镜像

路径切换到docker目录下,编写Dockerfile

vim Dockerfile

进入编辑框,输入i或o进行写入数据

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

保存编辑内容并退出:点击Esc,输入: wq 回车

在docker目录下 执行命令(注意末尾还有个小点 . 哈)

docker build -t product:1.0 .

# product: 打包的镜像名称
# 1.0:版本号
# . :当前目录

本地虚拟机安装Docker部署spring boot 项目jar包_第14张图片

镜像已经有了,接下来运行即可

docker run --name product -d -p 8080:8080 product:1.0

最后通过浏览器(局域网内)访问即可

本地虚拟机安装Docker部署spring boot 项目jar包_第15张图片

运行下图中命令可以查看项目日志

本地虚拟机安装Docker部署spring boot 项目jar包_第16张图片

如果想外网访问到路由地址,可以采用内网穿透的工具,比如花生壳之类的,可以去试试。

特此记录一下自己部署docker运行项目jar包的一些操作流程,有什么不对,不好的地方望大家随时指出,一起学习。

你可能感兴趣的:(数据库,docker,java,linux,centos)