一、基础Spring-boot快速启动
1.1 快速启动 pom.xml加入如下依赖
@SpringBootApplicationpublic class DockerApplication {public static void main(String[] args) {SpringApplication.run(DockerApplication.class, args);}}测试API
@RestControllerpublic class DockerStarterApi {@GetMapping("/api/docker/hello")public String hello() {return "hello docker";}}配置启动配置文件 application.yml
server: port: 9090 # 为了展示效果, 这里改了默认端口8080检查Spring启动
._______ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::(v2.0.2.RELEASE)...2018-12-17 17:26:13.385 INFO 48740 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Registering beans for JMX exposure on startup2018-12-17 17:26:13.448 INFO 48740 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''2018-12-17 17:26:13.453 INFO 48740 --- [main] pers.study.docker.DockerApplication: Started DockerApplication in 1.982 seconds (JVM running for 2.602)检查API是否生效
$ curl -XGET 'http://localhost:9090/api/docker/hello'hello docker浏览器检查
http://localhost:9090/api/docker/hello

文章插图
1.2 打包启动
项目打包
完成上面步骤之后,执行打包命令:
$ mvn clean -U -Dmaven.test.skip compile package因为上面的pom文件里面定义了
finalName,所以在这里会看到编译打包之后 target 目录下会生成 spring-docker.jar$ java -jar target/spring-docker.jar不出意外(有问题留言~)运行结果同上并检查API是否生效即可.
二、Docker快速安装
接下来开始准备Docker
安装
官网下载安装
检查安装、查看帮助
$ docker --versionDocker version 18.06.0-ce, build 0ffa825$ docker --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containers...镜像加速
中国官方镜像加速
三、配置Spring-boot + Docker
pom.xml 添加docker plugin
Dockerfile 文件根据上面
pom.xml 文件配置 src/main/docker ,这里配置了docker配置文件的目录,所以需要再 src/main 下面创建docker文件夹,同时创建 Dockerfile 文件 。目录机构如图:

文章插图
docker配置文件结构.png
编辑
DockerfileFROM openjdk:8-jdk-alpineVOLUME /tmpADD spring-docker.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]FROM 表示以Java8为基础镜像
VOLUME 表示挂载目录
ADD 拷贝打包文件并重命名为
app.jarENTRYPOINT 根据下面的官方文档解释大致是为了缩短tomcat启动时间而添加的一个系统属性 。
We added a四、Docker启动Spring-bootVOLUMEpointing to/tmpbecause that is where a Spring Boot application creates working directories for Tomcat by default. The effect is to create a temporary file on your host under/var/lib/dockerand link it to the container under/tmp. This step is optional for the simple app that we wrote here but can be necessary for other Spring Boot applications if they need to actually write in the filesystem.
To reduce Tomcat startup time we added a system property pointing to "/dev/urandom" as a source of entropy. This is not necessary with more recent versions of Spring Boot, if you use the "standard" version of Tomcat (or any other web server).
配置完成!
进入
module 执行:$ mvn package docker:build[INFO] Scanning for projects...... ---> Running in e1f8aba72bdfRemoving intermediate container e1f8aba72bdf ---> 36a61c09f09aProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}Successfully built 36a61c09f09aSuccessfully tagged springboot/spring-docker:latest[INFO] Built springboot/spring-docker[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 6.367 s[INFO] Finished at: 2018-12-17T20:48:21+08:00[INFO] ------------------------------------------------------------------------查看镜像
$ docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEspringboot/spring-dockerlatest36a61c09f09a2 minutes ago123MB运行镜像
$ docker run -p 9090:9090 -t springboot/spring-docker ._______ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::(v2.0.2.RELEASE)2018-12-17 12:53:21.502 INFO 1 --- [main] pers.study.docker.DockerApplication: Starting DockerApplication v1.0-SNAPSHOT on 94991c04be5d with PID 1 (/app.jar started by root in /)2018-12-17 12:53:21.509 INFO 1 --- [main] pers.study.docker.DockerApplication: No active profile set, falling back to default profiles: default···2018-12-17 12:53:25.255 INFO 1 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Registering beans for JMX exposure on startup2018-12-17 12:53:25.337 INFO 1 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''2018-12-17 12:53:25.353 INFO 1 --- [main] pers.study.docker.DockerApplication: Started DockerApplication in 4.485 seconds (JVM running for 5.346)查看容器
$ docker psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES94991c04be5dspringboot/spring-docker"java -Djava.securit…"53 seconds agoUp 52 seconds0.0.0.0:9090->9090/tcpquizzical_bhabha验证启动,访问API
$ curl -XGET 'http://localhost:9090/api/docker/hello'hello docker至此Docker部署spring-boot搭建完成 。
五、移除镜像
停止容器
$ docker stop 94991c04be5d94991c04be5d删除容器
$ docker rm 94991c04be5d94991c04be5d删除镜像
【Docker部署Spring-boot项目的示例代码】$ docker image rm springboot/spring-dockerUntagged: springboot/spring-docker:latestDeleted: sha256:36a61c09f09ab88cfe5a05f564deb57498682f4a6f3ec01d2a8c4fdc80ac1e41Deleted: sha256:3f9aef70be6d4d43c205454d8874f10bc2f7280f70eb88cd1f04937b7965dd27Deleted: sha256:9a5800e93615bb4c5128bb36d31ec494327c01f1a9a768c1ff538badf76628b9Deleted: sha256:d9c66f907448fa9e61fd5f9267d7fcf8e1f4b52d0a20466414f2f45777261284六、其他配置功能
添加环境属性
$ docker run -e "SPRING_PROFILES_ACTIVE=prod" -p 9090:9090 -t springbooot/spring-docker后台启动运行
$ docker run -p 9090:9090 -d springboot/spring-docker开启容器Debug 修改
DockerfileFROM openjdk:8-jdk-alpineVOLUME /tmpADD spring-docker.jar app.jarENV JAVA_OPTS ''CMD java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar app.jardocker run
复制代码 代码如下:$ docker run -e "JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" -p 9090:9090 -p 5005:5005 -t springboot/spring-docker
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
