本文已参加 [新人创作礼] 活动,一起开启掘金创作之旅。
上篇我们已经学习了如何使用dockerfile构建自己的镜像和dockerfile常见的指令。 本篇实战将自己的javaweb项目构建成镜像,并使用docker部署。
实战
1 创建最简单的spring boot web项目,本篇就不做讲解。
2 mvean打包项目
使用mvn install命令将我们的项目打包成jar包,并将其上传到自己的linux服务器上面。
3 编写dockerfile 文件
# 指定一个基础镜像jdk1.8
FROM docker.io/centos:latest
# 指定作者信息
MAINTAINER guaner
# 将指定的jar文件复制到容器中
COPY demo-0.0.1-SNAPSHOT.jar /usr/local/
# 执行jar文件
ENTRYPOINT ["java" ,"-jar"]
# 参数
CMD ["/usr/local/docker-0.0.1-SNAPSHOT.jar"]
4 构建镜像
(1) 通过docker build方式构建镜像:docker build -t="dockerdemo:01" --no-cache .
(备注:-t是为该镜像指定名称,不需要缓存)
(2) 上述步骤执行完毕后,通过docker images命令查看生成的镜像id为:bd6cf73e2145
(3) 运行此镜像:docker run -p 8080:8080 --name dockerdemo bd6cf73e2145
(备注:-p是指定端口的映射将应用端口8080映射到容器端口8081,用于对应用进行访问,
bd6cf73e2145为生成的镜像id)或通过docker run -i -t -d -p 8080:8080 --name
dockerdemo bd6cf73e2145 -g "daemon off;"运行,区别在于第二种方式是启动了一个
后台的守护进程,
(4) 应用运行以后,通过以下链接访问:http://127.0.0.1:8080/hello/world
(备注:ip为docker宿主机ip,8081为上述指定的docker映射端口,
hello/world为web应用的映射url,根据自己的情况指定访问的url)
注意:failed to solve with frontend dockerfile.v0: failed to create LLB definition:
failed to do request:
构建时出现该错误,是 buildkit 中的一个错误,考虑到 buildkit 仍然不稳定。如果您在
Mac/Windows 上使用 Docker 桌面,您可能还必须在“Docker Engine”json 配置中禁用它。
Docker 桌面 -> 设置 -> Docker 引擎 ->“features”:
{ buildkit: true}将"features": { buildkit: false}
访问一次之后,可以使用 docker logs -f 查看指定容器的日志信息,在其中能够看到
我们应用的日志信息。
启动容器成功后,自测成功!
这样,使用Dockerfile构建SpringBoot项目(打包 + 部署 + 运行)就成功完成了!