您现在的位置是:首页 >技术教程 >【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)网站首页技术教程
【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
记得防火墙开启端口或安全组
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。