使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile

只需要运行该镜像,就会自动执行 ENTRYPOINT 指定的命令

  • 如果 Dockerfile 中存在多个 ENTRYPOINT 指令,则只有最后一个生效。
  • 在运行容器时,可以通过在 docker run 命令中指定参数来覆盖 ENTRYPOINT 中的内容。
  • 如果 Dockerfile 中同时存在 ENTRYPOINT 和 CMD 指令,则 CMD 的内容会被作为参数传递给 ENTRYPOINT
    所指定的可执行文件或脚本。

3、构建java项目镜像

docker build [OPTIONS] PATH | URL | -

其中,PATH 可以是本地文件系统上 Dockerfile 文件所在的路径,也可以是 URL,或者是 -(表示使用标准输入)。OPTIONS 是一些可选参数,常用的参数包括:

  • -t, --tag:为镜像设置一个标签,格式为 :。例如,-t myimage:1.0。
  • -f, --file:指定要使用的 Dockerfile 文件的路径。如果不指定,默认为当前目录下的 Dockerfile 文件。
  • 其他选项包括 --build-arg、–pull、–no-cache 等,可以根据需要进行设置。

例如,如果 Dockerfile 文件位于当前目录下,可以使用以下命令构建镜像并设置标签:

docker build -t spring-boot:1.0 .


上传dockerfile和spring-boot-admin jar到对应路径/data/java/spring-boot下

在这里插入图片描述

构建镜像
docker build -t spring-boot:1.0 

Build的路径问题
经常会遇到如下报错:

COPY failed: stat xxxx: no such file or directory

1、Dockerfile 文件查找不到
如果dockerfile不在当前目录,则需要指定dockerfile 目录构建

docker build -f "/data/java/spring-boot/Dockerfile" -t spring-boot:1.0 

2、Copy /spring-boot-admin.jar文件找不到的问题

COPY 命令中指定的源路径应该是相对于 Dockerfile 的路径

  • 如果 spring-boot-admin.jar 文件位于与 Dockerfile 同级的目录下,应该将 COPY 命令修改为:
COPY spring-boot-admin.jar /spring-admin.jar

  • 如果 spring-boot-admin.jar 文件位于 Dockerfile 的上级目录中,可以使用 … 来指定父级目录
COPY ../spring-boot-admin.jar /spring-admin.jar


  • PS:一开始把COPY 的路径设置成了/data/java/spring-boot/spring-boot-admin.jar一直找不到,报错:
failed to walk /var/lib/docker/tmp/buildkit-mount2576932656/data/java/spring-boot: lstat /var/lib/docker/tmp/buildkit-mount2576932656/data/java/spring-boot: no such file or directory


查看已经构建成功的镜像
docker images

4、生成容器

  • 执行命令
docker run -p 6088:6088 --name springboot --restart always \
> -d spring-boot:1.0


查看项目启动日志,启动成功

docker log 容器id
#动态更细查看日志
docker log -f 容器id

在这里插入图片描述

5、docker 应用日志映射到本地

进入容器里面查看日志

#查看对应容器id
docker ps 
#进入容器
docker exec -it container_id bash
#如果没装对应的bash命令,使用sh进入
docker exec -it container_id sh
#查看目录
ls
#退出容器
exit

#进入logback配置的输出log地址,查看日志文件在这里插入图片描述

#停止容器
docker stop id
#删除容器
docker rm id
#重新生成挂在日志到本地目录的容器
docker run -p 6088:6088 --name spring-boot --restart always \
-v /home/spring-boot/logs:/home/spring-boot/logs \
-d spring-boot:1.0


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/94537bb6f1b8264d2a894a7fa95734ce.png)
![img](https://img-blog.csdnimg.cn/img_convert/fa1e4d864d1c553ab5a2ab01f2e54901.png)
![img](https://img-blog.csdnimg.cn/img_convert/20193f3c2e56a7520b586f12c7ec68a1.png)
![img](https://img-blog.csdnimg.cn/img_convert/c4bde6d1bd4ac9a507d6d0c4cbd9a674.png)
![img](https://img-blog.csdnimg.cn/img_convert/1c28847ba28a8a70a9239156d8983c8c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/5f4597887a0aa0b044d6bc15e3b614fb.jpeg)



为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**

![](https://img-blog.csdnimg.cn/img_convert/4540bdd6163326b9dd4c1b9a8f8789b5.png)

本份面试集锦涵盖了

*   **174 道运维工程师面试题**
*   **128道k8s面试题**
*   **108道shell脚本面试题**
*   **200道Linux面试题**
*   **51道docker面试题**
*   **35道Jenkis面试题**
*   **78道MongoDB面试题**
*   **17道ansible面试题**
*   **60道dubbo面试题**
*   **53道kafka面试**
*   **18道mysql面试题**
*   **40道nginx面试题**
*   **77道redis面试题**
*   **28道zookeeper**

**总计 1000+ 道面试题, 内容 又全含金量又高**

*   **174道运维工程师面试题**

> 1、什么是运维?

> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

> 3、现在给你三百台服务器,你怎么对他们进行管理?

> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点

> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值