springboot + docker容器化部署

springboot + docker

  • 1 首先我们需要创建一个springboot项目

  • 2 我们直接使用idea自带的工具maven package进行打包

    • 对应的jar会生成在/Users/chenyunbin/Documents/我的idea项目/dockertest/target目录下
      在这里插入图片描述
  • 3 我们创建一个文件夹存放我们生成的jar包和Dockfile文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: cyb
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER cyb <cyb@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD dockertest-0.0.1-SNAPSHOT.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

  • 4 通过Dockerfile来构建我们的镜像
    • docker build -t 指定我们的镜像 指定Docker的上下文路径(需要copy到docker引擎,默认是Dockfile路径)
    • docker build -t springbootdemo4docker .
    • 注意我们需要在Dockerfile所在的目录执行命令。
docker build -t springbootdemo4docker .

[+] Building 4.0s (8/8) FINISHED                                                                                                                              
 => [internal] load build definition from Dockerfile                                                                                                     0.0s
 => => transferring dockerfile: 37B                                                                                                                      0.0s
 => [internal] load .dockerignore                                                                                                                        0.0s
 => => transferring context: 2B                                                                                                                          0.0s
 => [internal] load metadata for docker.io/library/java:8                                                                                                2.1s
 => [internal] load build context                                                                                                                        1.2s
 => => transferring context: 18.82MB                                                                                                                     1.2s
 => CACHED [1/3] FROM docker.io/library/java:8@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d                                   0.0s
 => [2/3] ADD dockertest-0.0.1-SNAPSHOT.jar app.jar                                                                                                      0.1s
 => [3/3] RUN bash -c 'touch /app.jar'                                                                                                                   0.4s
 => exporting to image                                                                                                                                   0.1s
 => => exporting layers                                                                                                                                  0.1s
 => => writing image sha256:7b1b0176cc3f849defb55d92f3faf773bc77f4dbe11ec3556ce0e14c8955164f                                                             0.0s
 => => naming to docker.io/library/springbootdemo4docker                                             

查看我们生成的镜像
docker images
REPOSITORY              TAG          IMAGE ID       CREATED         SIZE
springbootdemo4docker   latest       7b1b0176cc3f   4 seconds ago   681MB

  • 5 通过镜像来启动我们的容器
    • docker run -d -p 8080:8080 容器名字
    • docker run -d -p 8080:8080 springbootdemo4docker
    • 这里注意一下: 第一个port是我们外部访问的port,第二个port就是容器使用的port,也就是springboot项目启动的port。不要弄混了。
运行对应的镜像
docker run -d -p 8080:8080 springbootdemo4docker

查看对应启动的容器
docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                    NAMES
f4c528860776   springbootdemo4docker   "java -Djava.securit…"   4 seconds ago    Up 4 seconds    0.0.0.0:8080->8085/tcp   optimistic_hamilton

另外可以查看对应的启动日志
docker logs -f   容器的id
docker logs -f f4c528860776

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.3)

2021-07-28 02:50:25.848  INFO 1 --- [           main] c.cyb.dockertest.DockertestApplication   : Starting DockertestApplication v0.0.1-SNAPSHOT using Java 1.8.0_111 on dbaa871f57ca with PID 1 (/app.jar started by root in /)
2021-07-28 02:50:25.858  INFO 1 --- [           main] c.cyb.dockertest.DockertestApplication   : No active profile set, falling back to default profiles: default
2021-07-28 02:50:27.703  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration' of type [org.springframework.ws.config.annotation.DelegatingWsConfiguration$$EnhancerBySpringCGLIB$$a8e1f653] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-28 02:50:27.870  INFO 1 --- [           main] .w.s.a.s.AnnotationActionEndpointMapping : Supporting [WS-Addressing August 2004, WS-Addressing 1.0]
2021-07-28 02:50:28.691  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2021-07-28 02:50:28.719  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-07-28 02:50:28.720  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.50]
2021-07-28 02:50:28.858  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-07-28 02:50:28.858  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2765 ms
2021-07-28 02:50:29.888  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2021-07-28 02:50:29.921  INFO 1 --- [           main] c.cyb.dockertest.DockertestApplication   : Started DockertestApplication in 5.326 seconds (JVM running for 6.375)
2021-07-28 02:54:07.715  INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-07-28 02:54:07.716  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-07-28 02:54:07.718  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 2 ms


  • 6 然后我们可以通过:localhost:8080/docker/hello 来访问对应的springboot接口,就跟在本地一样。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值