docker入门(5)

112 阅读2分钟

本文已参加 [新人创作礼] 活动,一起开启掘金创作之旅。

上篇我们已经学习了如何使用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项目(打包 + 部署 + 运行)就成功完成了!