Docker

简介: 本文介绍Docker基础操作,涵盖镜像打包、容器运行及Dockerfile编写。通过实例演示如何构建Java项目镜像并运行容器,包含jar包准备、Dockerfile编写、镜像生成、端口映射及服务验证全过程,适合初学者快速掌握Docker部署应用方法。

对于docker知识体系还不熟悉的可以参照:Docker教程,涉及知识点如下

  • 镜像知识:打包镜像、查看镜像
  • 容器知识:查看容器、启动容器、查看日志
  • dockerfile知识:编写dockerfile,自定义构建镜像

1.镜像打包

1.工程打jar包

步骤同:Linux打包部署,这里我直接提供打好的jar包以节约时间:📎linuxDemo.jar

2.编写dockerfile文件

dockerfile文件的编写原理:Docker教程 中的“3.DockerFile自定义镜像”,这里我们编写如下:

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/tmp/linux
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./linuxDemo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

2.生成镜像

完整文件如下:📎jdk8.tar.gz📎linuxDemo.jar

这里我因为基础版本拉取失败,所以将JDK一起打包进去了,所以文件比较大

  • 注意:上述命令执行路径:在对应DockerFile所在路径

3.运行容器

  • 这里必须做端口映射,否则容器内端口我们是无法访问到,必须映射到宿主机

4.验证心跳


相关文章
|
6月前
|
运维 关系型数据库 Linux
Linux 高效学习指南:从入门到运维的科学路径
本文介绍Linux运维学习的科学路径,主张“场景驱动”替代死记硬背。涵盖四大阶段:一周掌握核心命令,两周理解系统原理与故障排查,两周实战部署LNMP服务,长期进阶自动化运维。强调动手实操、问题驱动与循序渐进,提供各阶段目标、任务与资源推荐,助你高效构建完整知识体系,成为实战型运维人才。
|
4月前
|
人工智能 自然语言处理 数据可视化
Java与AI的深度融合:JBoltAI赋能基础AI能力探索
本文介绍JBoltAI框架如何赋能Java开发者快速构建AI应用,涵盖数据管理、可视化、OCR识别、Text2SQL/JSON、流式对话及多模态交互等核心能力,并支持20+大模型无缝接入,推动Java迈向AIGS新时代。(239字)
405 3
|
6月前
|
前端开发 NoSQL Java
单体版本
JeecgBoot是一款基于Spring Boot与Vue3的低代码开发平台,支持快速构建企业级应用。技术栈涵盖Spring Cloud Alibaba、MybatisPlus、Redis、Vue3+TypeScript等,提供代码生成、在线表单、菜单权限管理等功能,助力高效开发。
 单体版本
|
6月前
|
人工智能 easyexcel Java
Blog]SpringBootExcel导入(☆☆☆)
基于SpringBoot+MySQL实现博客系统Excel导入功能,需掌握Maven、POI/EasyExcel技术。预计AI辅助1小时,手动4小时。无详细原型,需自主分析需求,培养独立开发与问题解决能力。
|
6月前
|
前端开发 Java 关系型数据库
[Blog]三层架构:代码本地运行(☆)
简介:本任务旨在帮助新人快速上手开发环境,掌握SpringBoot、MySQL、Maven等技术栈。需完成项目本地导入与运行,自行解决JDK、Maven及IDE版本兼容问题,并修复因数据库未导入、名称不匹配导致的异常。通过实践熟悉工程启动流程与常见问题排查,为后续工作打下基础。(238字)
 [Blog]三层架构:代码本地运行(☆)
|
6月前
|
Java 测试技术 API
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因新功能未灰度发布且存在空指针缺陷,导致全球服务中断超7小时。本文剖析故障根源,详解配置灰度发布的重要性及Nacos等工具的实践方案,强调通过IP、标签、规则等灰度策略保障系统稳定性,避免大规模故障。
|
存储 程序员 BI
NumPy 1.26 中文官方指南(一)(1)
NumPy 1.26 中文官方指南(一)
424 1
|
Kubernetes JavaScript API
如何理解 Istio Ingress, 它与 API Gateway 有什么区别?东西流量?南北流量?
这三者都和流量治理密切相关,那么流量治理在过去和现在有什么区别呢?都是如何做的呢? 在学习istio的时候对流量管理加深了理解。什么是东西流量?什么是南北流量?
809 0
|
前端开发 应用服务中间件 nginx
docker部署本地前端项目思路
docker部署本地前端项目思路
572 7
|
NoSQL Java 测试技术
Golang内存分析工具gctrace和pprof实战
文章详细介绍了Golang的两个内存分析工具gctrace和pprof的使用方法,通过实例分析展示了如何通过gctrace跟踪GC的不同阶段耗时与内存量对比,以及如何使用pprof进行内存分析和调优。
757 0
Golang内存分析工具gctrace和pprof实战

热门文章

最新文章