Docker

简介: 本文介绍Docker基础操作,涵盖镜像打包、容器运行及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.验证心跳


相关文章
|
9天前
|
敏捷开发 Java 测试技术
为什么要单元测试
本文探讨单元测试如何提升软件研发效率,打破“写单测拖慢进度”的误区。通过解析测试金字塔,阐明单元测试在保障代码质量、提升可维护性与团队协作中的核心作用,并揭示常见反模式与认知误区,倡导开发者重视单测,实现从“爬行”到“奔跑”的工程进化。
为什么要单元测试
|
3月前
|
Web App开发 资源调度 算法
Fresnel变换的详解
菲涅耳变换是描述光波近场衍射的核心工具,由法国物理学家菲涅耳提出,用于精确刻画光通过孔径后的传播行为。它在傍轴近似下将衍射积分转化为含二次相位因子的傅里叶形式,广泛应用于激光传输、全息成像与光学系统设计。该变换介于精确的瑞利-索末菲积分与远场的夫琅禾费衍射之间,体现了波动光学的基本特征。
643 5
|
5月前
|
存储 缓存 数据挖掘
阿里云服务器u1实例2核4G5M带宽199元测评:中小型网站搭建首选
在阿里云目前的活动中,阿里云推出了38元、99元和199元特惠云服务器。其中,通用算力型u1实例的2核4G配置,搭配80G ESSD Entry云盘和5M带宽,仅需199元即可畅享一年服务。这一价格,深受广大初创企业用户喜欢。那么,这款阿里云服务器性能如何?是否适合搭建企业网站?本文为您深度测评这款云服务器,以供选择参考。
282 0
阿里云服务器u1实例2核4G5M带宽199元测评:中小型网站搭建首选
|
7月前
|
存储 安全 Java
Java 集合面试题从数据结构到 HashMap 源码剖析详解及长尾考点梳理
本文深入解析Java集合框架,涵盖基础概念、常见集合类型及HashMap的底层数据结构与源码实现。从Collection、Map到Iterator接口,逐一剖析其特性与应用场景。重点解读HashMap在JDK1.7与1.8中的数据结构演变,包括数组+链表+红黑树优化,以及put方法和扩容机制的实现细节。结合订单管理与用户权限管理等实际案例,展示集合框架的应用价值,助你全面掌握相关知识,轻松应对面试与开发需求。
365 3
|
10月前
|
SQL 关系型数据库 MySQL
【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
|
11月前
|
人工智能 安全 Anolis
打造更 AI 的操作系统 《龙蜥+超级探访》第三期走进浪潮信息
且看龙蜥社区如何联合浪潮信息向更高层次的操作系统智能化迈进?
打造更 AI 的操作系统 《龙蜥+超级探访》第三期走进浪潮信息
|
11月前
一文彻底搞定电容元件
电容元件是电路中储存电荷的基本组件,通常用“C”表示,单位为法拉(F),常见单位有微法(μF)、纳法(nF)和皮法(pF)。电容具有“通交流,隔直流”的特性,主要用于储能、滤波、耦合与隔直等。根据安装方式可分为固定电容、可变电容和微调电容。其主要参数包括电容值、额定电压和损耗因数。电容广泛应用于电源滤波、信号处理及脉冲电路等领域。
943 0
|
11月前
|
存储 算法 JavaScript
【动态规划篇】股海擒龙诀:精准狙击股票买卖最佳时机
【动态规划篇】股海擒龙诀:精准狙击股票买卖最佳时机
|
设计模式 前端开发 JavaScript
前端必须掌握的设计模式——装饰器模式
装饰器模式是一种结构型设计模式,通过创建新类来包装原始对象,实现在不修改原有结构的前提下扩展新行为。其核心在于“组合”思想,使新功能可“即插即拔”。该模式具有解耦性、灵活性和动态性等特点,广泛应用于类的面向对象编程语言中,如JavaScript的注解和TypeScript的写法。示例中,通过装饰器模式为游戏角色动态添加装备,展示了其强大的扩展性和灵活性。
287 16
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####