零、学习内容
- 镜像结构
- 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
记得防火墙开启端口或安全组