【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)

简介: 【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)


零、学习内容

  • 镜像结构
  • Dockerfile 语法
  • 构建 Java 项目

① 之前使用的镜像都是 DockerHub 官方提供的

② 开发者需要将自己的微服务制作为镜像

一、镜像结构

镜像是由应用程序及其需要的系统函数库环境配置依赖打包而成。

📝 镜像是分层结构,每一层称为一个 Layer

1️⃣ BaseImage 层:包含基本的系统函数库、环境变量、文件系统

2️⃣ Entrypoint:入口,是镜像中应用启动的命令

2️⃣ 其它:在 BaseImage 基础上添加依赖、安装程序、完成整个应用的安装和配置

二、Dockerfile

📃 Dockerfile 是一个文本文件

📃 其中包含很多指令 (Instruction)

📃 可通过指令来说明要执行什么操作来构建镜像

📃 每一个指令都会形成一层 Layer

Dockerfile 官方文档:https://docs.docker.com/engine/reference/builder

四、基于 java:8-alpine 构建自己的 Java 项目镜像

✏️ 1、新建空文件夹 docker-demo

mkdir docker-demo

✏️ 2、把 Java 项目的 jar 文件上传到 docker-demo 目录中

✏️ 3、把 jdk8.tar.gz 文件上传到 docker-demo 目录中(安装 jdk)

✏️ 4、把 Dockerfile 文件上传到 docker-demo 目录中

# 指定基础镜像
FROM java:8-alpine
  
# 拷贝jdk和java项目的包
COPY ./Morning.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

✏️ 5、利用 Dockerfile 文件构建镜像

✏️ 6、通过镜像创建容器

docker run --name javaweb -p 8090:8090 -d javaweb:1.0

记得防火墙开启端口或安全组

相关文章
|
2天前
|
搜索推荐 前端开发 Java
java医院绩效考核管理系统项目源码
系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
4 0
|
3天前
|
前端开发 Java 测试技术
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
Java从入门到精通:4.1.1参与实际项目,锻炼编程与问题解决能力
|
17天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
14 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
17天前
|
关系型数据库 MySQL 数据库
docker自定义安装mysql 5.7
docker自定义安装mysql 5.7
24 0
|
18天前
|
SQL Java Go
java项目超市购物管理系统
java项目超市购物管理系统
|
19天前
|
Java
java项目日历表
java项目日历表
|
4天前
|
安全 Java 调度
Java线程:深入理解与实战应用
Java线程:深入理解与实战应用
23 0
|
1天前
|
缓存 Java
Java并发编程:深入理解线程池
【4月更文挑战第26天】在Java中,线程池是一种重要的并发工具,它可以有效地管理和控制线程的执行。本文将深入探讨线程池的工作原理,以及如何使用Java的Executor框架来创建和管理线程池。我们将看到线程池如何提高性能,减少资源消耗,并提供更好的线程管理。
|
1天前
|
消息中间件 缓存 NoSQL
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
Java多线程实战-CompletableFuture异步编程优化查询接口响应速度
|
2天前
|
数据采集 存储 Java
高德地图爬虫实践:Java多线程并发处理策略
高德地图爬虫实践:Java多线程并发处理策略