首页 > 编程知识 正文

docker部署jar包,docker如何部署项目

时间:2023-05-04 11:22:45 阅读:26071 作者:529

docker介绍docker是开源的APP应用程序容器引擎,开发者将他们的APP应用程序打包,将依赖关系打包到可移植的镜像中,发布到常见的Linux或Windows计算机上,或进行虚拟化容器完全使用沙盒机制,相互之间没有接口。

docker的核心思想是通过管理APP应用程序的封装、分发、部署和操作生命周期,实现APP应用程序组件级的“一次性封装、到处执行”。 这里的APP应用组件可以是web APP应用、环境或数据库。

安装docker这么不可思议,你怎么安装docker? 一起去吧。

Ubuntu安装代理程序只介绍如何安装CentOS,因为它的系统是CentOS。 Ubuntu及其他系统请自行百度。

要安装CentOSdockerdocker,centos版本必须为7.0或更高版本。 如果系统版本仍为7.0或更低版本,请升级并安装不支持32位系统的版本。 内核版本至少为3.10。

请确保没有安装docker。 安装可能会失败。 如果您以前安装过,请直接尝试yum isntall -y docker

1 .更新软件源中的第一个命令

yum更新

他输入y返回车里,表示以下信息更新成功。

第二个命令

yum install-yyum-utils设备- mapper-persistent-datalvm 2

添加docker稳定版本的yum软件源

yum-config-manager-- add-repo https://download.docker.com/Linux/centos/docker-ce.repo

3 .再次更新yum源代码并安装docker

yum更新

yuminstall-ydocker-ce

查看此页面,您会发现docker安装成功。 4 .安装完成后启动docker

systemctlstartdocker 5.重新启动

systemctlrestartdocker 6.停止

systemctlstopdocker 7.启动时自启动

查看systemctlenabledocker8.docker的状态

除了上述yum安装外,还可以使用shell脚本安装systemctlstatusdocker。 安装步骤如下。

curl-fssl 3359 get.docker.com/| sh或

wget-qo-https://get.docker.com/| sh很容易拉动java环境引出jdk,直接执行一次代码即可。 是我在这里拉过来时的java 8版本。

dockerpulljava:8提取完成后运行:

dockerimages显示以下内容时,表示提取成功

springboot项目1 .创建新项目

引入sprint-boot-web依赖关系

新建后的项目结构

引入docker依赖关系

properties docker.image.prefix registry.aliyuncs.com/linhua test/docker.image.prefix/properties! --docker插件----plugingroupidcom.Spotify/groupidartifactiddocker-maven-plugin/artifactidversion1.0.0/versionconcocker --docker文件所在的目录--- dockerdirectorysrc/main/docker/dockerdirectoryresourcesresourcetargetpath

h>                            <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:8VOLUME /tmp/tomcatADD spring-boot-docker-0.0.1-SNAPSHOT.jar springboot-docker.jarENTRYPOINT ["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文件主要看这两个参数:

这里我使用了log4j2的日志,如何配置log4j2的日志,请参考 springboot整合Log4j2(将日志输出到指定文件)。

6.编写application.yml配置文件

server:  port: 9999

到这里springboot项目就创建完成了,我们现在启动一下项目。

  .   ____          _            __ _ _ /\ / ___'_ __ _ _(_)_ __ __ _     ( ( )___ | '_ | '_| | '_ / _` |     \/  ___)| |_)| | | | | || (_| |  ) ) ) )  '  |____| .__|_| |_|_| |___, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::        (v2.2.5.RELEASE)15:29:19.386 [main] INFO  com.ymy.SpringBootDockerApplication  - Starting SpringBootDockerApplication on LAPTOP-3GLHJRE9 with PID 20652 (D:springbootspring-boot-dockertargetclasses started by admin in D:springboot)15:29:19.395 [main] INFO  com.ymy.SpringBootDockerApplication  - No active profile set, falling back to default profiles: default15:29:20.183 [main] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer  - Tomcat initialized with port(s): 9999 (http)15:29:20.200 [main] INFO  org.apache.coyote.http11.Http11NioProtocol  - Initializing ProtocolHandler ["http-nio-9999"]15:29:20.201 [main] INFO  org.apache.catalina.core.StandardService  - Starting service [Tomcat]15:29:20.201 [main] INFO  org.apache.catalina.core.StandardEngine  - Starting Servlet engine: [Apache Tomcat/9.0.31]15:29:20.309 [main] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]  - Initializing Spring embedded WebApplicationContext15:29:20.309 [main] INFO  org.springframework.web.context.ContextLoader  - Root WebApplicationContext: initialization completed in 881 ms15:29:20.452 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor  - Initializing ExecutorService 'applicationTaskExecutor'15:29:20.568 [main] INFO  org.apache.coyote.http11.Http11NioProtocol  - Starting ProtocolHandler ["http-nio-9999"]15:29:20.596 [main] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer  - Tomcat started on port(s): 9999 (http) with context path ''15:29:20.599 [main] INFO  com.ymy.SpringBootDockerApplication  - Started SpringBootDockerApplication in 1.664 seconds (JVM running for 4.04)

如果看到这个页面表示springboot项目没有问题,现在我们将项目拷贝到服务器中。

打包springboot到docker

我现在已经将项目拷贝到服务器中,我们现在需要将它打包到docker中,借助maven实现打包,如果还没有安装maven的,请先安装maven,切换到项目的根目录

执行

mvn clean package docker:build

执行完之后将会看到

表示打包成功。

执行

docker images

我们发现docker的镜像中多了一个springboot/spring-boot-docker,没错,这个就是我们的springboot项目,既然镜像已经生成,那么如何使用这个镜像呢?

执行

docker run --name springbooot-docker   -p 9999:9999 -d 4a2

run:运行的意思–name:指定镜像启动的之后的名称-p:容器和外部的端口映射 第一个端口:外部 第二个端口:内部-d:后台运行 -t:实时运行,窗口关闭,程序结束。4a2:表示镜像的id(IMAGE ID)前3位,这里的id并不需要输入全称,只需要输入前几个就行,有一个前提:当有很多镜像的时候,前面几个字符就有可能会相同,这个时候就需要多输入几位,直到不相同位置。

启动了镜像之后我怎么知道有没有成功呢?这个时候我们就需要一个命令来查看已经启动的任务

docker ps

我们发现这里已经出现了我们之前启动的镜像,所以这基本上代表启动成功了,为了验证是否启动成功,我们在浏览器输入测试的接口:ip:9999/test

docker查看容器的日志

这说明我们已经springboot项目已经启动成功了,到这里docker部署springboot项目差不就结束了,但是你可能还有一个疑问,如果我想看控制台的日志怎么办呢?像我们一般使用java -jar的时候都会生成一个控制台的日志文件,那docker容器中怎么查看控制台日志呢?其实很简单,只需要一行命令即可

docker ps

找到容器的id

然后执行

docker logs -f --tail=100 ca

这个时候我们就能看到控制台的日志了,如何我们想看log4j2输出的文件日志呢?

查看log4j2输出问文件日志

还记得我们在log4j2中配置了日志的输出目录了吗?

没错,就是这个, 我们切换到这个目下

发现这里生成了三个文件,我们打开info.log

tail -100f info.log

我们发现并没有输入我们打印的:“这是输出到文件的日志”,难道是我们配置错了问题?不是的,是因为我们找错了位置,真正的文件日志在容器内部,所以我们需要先进入容器内部

docker exec -it ca2cd59fff9b /bin/bash

ca2cd59fff9b:容器id

然后再切换到我们日志的输出路径

cd work/spring-boot-docker

这里也找到了三个日志文件,我们打印info.log

tail -100f info.log

这就是我们log4j2输出到文件的日志,到这里docker整合springboot项目就差不多结束了,如果想要退出docker容器可以使用

exit END  

PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。