目标

使用Springboot构建Java应用程序,将其打包到jar程序包中,以在本地计算机上启动build docker映像,并使用容器运行服务。

  • 最后删除容器和镜像
  • 实验过程

    首先我们参考 这个spring官方教程构建一个springboot的应用

    然后我们创建一个文件夹来管理所有用到的文件,目录结构如下:

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> pwd
    /Users/xiexiyang/developer/docker
    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> tree -L 2
    .
    ├── Dockerfile //Dockerfile 文件
    ├── demo //源代码文件
    │   ├── HELP.md
    │   ├── demo.iml
    │   ├── mvnw
    │   ├── mvnw.cmd
    │   ├──
    │   ├── src
    │   └── target
    ├── jar
    │   └── // 打包编译出来的jar包
    └── jdk1.8.0_281 // jdk 文件
    ├── COPYRIGHT
    ├── LICENSE
    ├── README.html
    ......

    然后我们在demo目录下执行 mvn clean package 可以生成对应的jar包,然后将这个jar包拷贝到 /Users/xiexiyang/developer/docker/jar目录下。

    在上一级目录中创建Dockerfile文件,内容如下:

    开始构建

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker build -t lepfinder/springboot-demo:1.0 .
    Sending build context to Docker daemon 393.1MB
    Step 1/9 : FROM cento
    ---> f1cb7c7d58b7
    Step 2/9 : RUN mkdir -p /data/Application/
    ---> Running in 4016eb2b3b69
    Removing intermediate container 4016eb2b3b69
    ---> c4ffe36412bd
    Step 3/9 : COPY . /data
    ---> f164f3957b91
    Step 4/9 : COPY ./jar/ /data/Application/jar
    ---> f0d8ffdfcbad
    Step 5/9 : ENV JAVA_HOME /data
    ---> Running in 561f570ce5ec
    Removing intermediate container 561f570ce5ec
    ---> d9c20e5b2e8c
    Step 6/9 : ENV PATH $JAVA_HOME/bin:$PATH
    ---> Running in 85867b46338c
    Removing intermediate container 85867b46338c
    ---> 9eede9cd87ac
    Step 7/9 : WORKDIR /data/Application/jar/
    ---> Running in 843dce769f09
    Removing intermediate container 843dce769f09
    ---> b51ad22548b3
    Step 8/9 : EXPOSE 8080
    ---> Running in 663b8974301c
    Removing intermediate container 663b8974301c
    ---> bf3b8cd0fb7e
    Step 9/9 : ENTRYPOINT ["java","-jar",""]
    ---> Running in 7f8d939ba854
    Removing intermediate container 7f8d939ba854
    ---> f58627f00d30
    Successfully built f58627f00d30
    Successfully tagged lepfinder/springboot-demo:1.0

    查看镜像是否生成

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    lepfinder/springboot-demo 1.0 f58627f00d30 42 seconds ago 576MB
    ubuntu latest 4e2eef94cd6b 6 months ago 73.9MB
    redis latest 1319b1eaa0b7 7 months ago 104MB
    mysql latest 0d64f46acfd1 7 months ago 544MB

    启动容器

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker run -d -p 8080:8080 lepfinder/springboot-demo:1.0 --name myapp
    3c9817ae550ae454eab7aef5ba881fab6bea40bd7ba0f89691c53564a97ab891

    查看运行的镜像
    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3c9817ae550a lepfinder/springboot-demo:1.0 "java -jar springboo…" 21 seconds ago Up 20 seconds 0.0.0.0:8080->8080/tcp stoic_hoover
    d91c441d9e42 mysql "docker-en…" 3 days ago Up 3 days 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

    验证是否启动成功

    在浏览器中输入 http://localhost:8080/hello

    查看镜像内部

    docker exec -it 3c9817ae550a /bin/bash

    停止容器

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker stop 3c9817ae550a
    3c9817ae550a
    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    d91c441d9e42 mysql "docker-en…" 3 days ago Up 3 days 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

    删除容器

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker rm 3c9817ae550a
    3c9817ae550a

    删除镜像文件

    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker image rm f58627f00d30
    Untagged: lepfinder/springboot-demo:1.0
    Deleted: sha256:f58627f00d305fd10a9e4fb946dfe36842a00aaa83786cc8b17208559e6dddb4
    Deleted: sha256:bf3b8cd0fb7eb77c7abbdffcff24f23c6a2db164a00f03894afdb4c2cc732ff7
    Deleted: sha256:b51ad22548b3f8cae5f0695f404339553a0f63bd9b810848674eaaa0dcad9e46
    Deleted: sha256:9eede9cd87ac754a88e6f4b47ec116e54e0e2aecf1c83eb4c61fdea27160980f
    Deleted: sha256:d9c20e5b2e8c6db673e8ae550cd6beea8f5cc272c9697e78200abed71fac1f9e
    Deleted: sha256:f0d8ffdfcbadc4ae5dde46f4e948baa11c3cb189f39d6b45cc47613cb7298b62
    Deleted: sha256:6209e5afc6193f78bc5a212dd26e11f0850a883df62ba870f2f109674e08fe8c
    Deleted: sha256:f164f3957b91b400fd6ddfcd4e718a7b42ff26df5d9798fbf45265feb31bf728
    Deleted: sha256:933120e6ec7840be41e562c2615ed60a65350c73096058e05267b482fd3280a2
    Deleted: sha256:c4ffe36412bdd1b0fd953e4f3d6a0d5be2e2068bb0a1ad1807dc6b393912a3b1
    Deleted: sha256:244cf05a2a7500a2d435f7e0a999f10f471117f7503817e91eb3da514d6baa66
    xiexiyang@xiexiyangdeMacBook-Pro-2 ~/d/docker> docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    ubuntu latest 4e2eef94cd6b 6 months ago 73.9MB
    redis latest 1319b1eaa0b7 7 months ago 104MB

    1.《手把手教你构建一个springboot的docker镜像》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

    2.《手把手教你构建一个springboot的docker镜像》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

    3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/189333.html