您现在的位置是:首页 >技术教程 >【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)网站首页技术教程

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

JavaLearnerZGQ 2024-06-12 00:01:02
简介【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

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。