Docker 部署SpringBoot项目不香吗?

作者:微信小助手

发布时间:2020-09-24T18:38:53

点击上方 "zhisheng"关注, 星标或置顶一起成长

Flink 从入门到精通 系列文章


toutiao.com/i6843391272229536267

目录

  • docker介绍
  • 安装docker
    • Ubuntu安装docker
    • CentOS安装docker
    • 通过脚本安装
  • 拉取java环境
  • 创建springboot项目
  • 打包springboot到docker
  • docker查看容器的日志
  • 查看log4j2输出问文件日志
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker的核心思想是通过对应用的封装、分发、部署、运行生命周期进行管理,达到应用组件级别的“一次性封装,到处运行”。这里的应用组件,可以是一个web应用,也可以是一个环境,更可以是一个数据库等等。
既然docker这么神奇,那我们如何安装docker呢?我们一起来走一下吧。
PS:我把 Dorcker 相关的文章整理好了,关注微信公众号 Java后端,回复 666 下载就可以了。

Ubuntu安装docker

由于本人的系统是CentOS,所以这里就只展示一下CentOS的安装方式,Ubuntu以及其他系统请自行百度。

CentOS安装docker

docker要求CentOS在7.0以后的版本,如果你的系统版本还在7.0以前,请先升级一下版本在进行安装,同时不支持32位的系统,内核版本至少3.10。
请先确保没有安装过docker,否则有可能会导致安装失败,如果之前安装过,可以尝试直接yum isntall -y docker
1.更新软件源第一个命令
yum update

遇到他输入y,然后回车,看到下面信息表示更新成功:

第二个命令
yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加docker稳定版本的yum软件源
  
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.再次更新yum源,并安装docker
  
yum update

  
yum install -y docker-ce

看到这个页面,标识docker已经安装成功了。
4.安装完成之后启动docker
systemctl start docker
5.重启
systemctl restart docker
6.停止
systemctl stop docker
7.开机自启动
systemctl enable docker
8.查看docker的状态
systemctl status docker

通过脚本安装

除了上面的yum安装,还可以采用shell脚本安装,安装流程如下:
curl -fsSL https://get.docker.com/ | sh
或者
wget -qO- https://get.docker.com/ | sh
拉取jdk很简单,直接执行一行代码即可,我这里拉取的时java 8的版本。
docker pull java:8
拉取完成之后执行:
docker images
如果出现下面内容,表示拉取成功

1.新建项目

引入sprint-boot-web的依赖

新建完成之后的项目结构

2.引入docker依赖
<properties>
       <docker.image.prefix>registry.aliyuncs.com/linhuatest</docker.image.prefix>
    </properties>


 <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!--docker文件所在的目录-->
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
3.新建docker文件在main目录下新建docker目录,然后在docker目录下创建dockerfile文件,不需要后缀名。

创建完成之后的工程目录如下:

4.编辑dockerfile文件
FROM java:8
VOLUME /tmp/tomcat
ADD spring-boot-docker-0.0.1-SNAPSHOT.jar springboot-docker.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot-docker.jar"]
FROM:指定存在的镜像,java:8是我刚刚拉取的镜像,运行的基础。VOLUME:指向的一个临时文件,用于存储tomcat工作。ADD:复制文件并且重命名文件。ENTRYPOINT:初始化配置或者自定义配置。
5.创建测试接口

TestController内容如下:
package com.ymy.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class TestController {

    @RequestMapping(value = "/test",method = RequestMethod.GET)
    public String test(){
        System.out.println("这是控制台日志!");
        log.info("这是输出到文件的日志");
        return   "HELLO-BUG!!!!!!!!!!";
    }
}
在resources目录下创建log4j2.xml文件主要看这两个参数�