码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 将项目制作成Dcoker镜像并运行--DevOps学习第三章


    将自己的Springboot项目制作成docker镜像

    文章目录

        • 将自己的Springboot项目制作成docker镜像
    • 一、制作过程
        • 1.把你的项目打包成jar包,上传到虚拟机
        • 2.编写Dockerfile,并上传到虚拟机,跟刚刚上传的项目在同一目录下
        • 3.构建镜像
        • 4.启动容器并测试端口
    • 二、注意事项和报错处理
        • 1.Dockerfile名字就是Dockerfile不能修改而且没有后缀名,这是约定不能更改
        • 2.Dockerfile里面的命令全部要大写
        • 3.各种意外情况

    环境: CentOS7
    jdk1.8(openjdk1.8也一样的)
    maven3.6.3

    一、制作过程

    1.把你的项目打包成jar包,上传到虚拟机

    请添加图片描述
    微服务同理

    2.编写Dockerfile,并上传到虚拟机,跟刚刚上传的项目在同一目录下

    FROM java:8
    MAINTAINER wjh
    VOLUME /tmp
    ADD wujiahao-0.0.1-SNAPSHOT.jar test.jar
    RUN bash -c 'touch /test.jar'
    ENTRYPOINT ["java","-jar","/test.jar"]
    EXPOSE 8060
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    FROM 选择基础镜像,从这里开始构建所有东西!
    MAINTAINER 该镜像的作者,可以写名字邮箱啥的
    ADD 从主文件(你上传的jar包)添加到你的镜像中,会自动解压压缩包!
    RUN和ENTRYPOINT  运行jar,可追加参数!
    EXPOSE &emsp镜像暴露端口与你该项目的端口号一致!

    3.构建镜像

    docker build -t test:2.0 .
    
    • 1

    进入存放jar和Dcokerfile的目录执行该命令。注意后面有个点的哈,表示当前目录下。该命令执行执行失败的话,好好检查你的Dockerfile有没有写错,标点符号是不是英文的。
    请添加图片描述

    4.启动容器并测试端口

    -d 是让容器后台运行
    -it 针对纯操作系统镜像(没有守护进程的)没有-it容器启动后会自动退出
    -p 映射端口,前面是宿主机,后面是容器。外部访问是访问宿主机的端口,比如本地起个容器端口映射为8888:9999,想要访问该容器的接口的话应该输入127.0.0.1:8888/xxxx
    请添加图片描述
    请添加图片描述
    成功

    二、注意事项和报错处理

    1.Dockerfile名字就是Dockerfile不能修改而且没有后缀名,这是约定不能更改

    2.Dockerfile里面的命令全部要大写

    3.各种意外情况

    逗号和-号不要搞错不然build的时候会失败
    请添加图片描述
    逗号错了会出现这种情况
    请添加图片描述

    还有就是docker run之后docker ps没显示的情况。执行docker ps -a你能看到你刚刚启动的容器处于Exited状态,说明是启动之后又停止了,这种情况很多种原因。
    请添加图片描述
    先执行docker logs 这个容器的ID,查看报错原因。我是Error: Could not find or load main class jar,检查Dcokerfile之后原来是我的ENTRYPOINT命令的 -jar 是中文的 -,无语。其他原因自行百度

  • 相关阅读:
    基于Netty的高性能API网关设计
    k8s之KubeSphere部署有状态数据库中间件服务 mysql、redis、mongo
    云原生技术-微服务SpringCloud(1)
    黑盒测试的优缺点(文档+视频讲解)
    [重庆思庄每日技术分享]-ORA-16525 dg broker不可用
    Docker数据存储&容器之间数据共享
    Cy5反式环辛烯,TCO-Cy5,Cy5 trans-cyclooctene标记生物分子
    状态模式 行为型模式之六
    es6 函数的使用
    Neo4j 宣布下一代图数据平台 Neo4j 5 上线
  • 原文地址:https://blog.csdn.net/AsFarmer/article/details/126077424
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号