目录
[二、Dockerfile 核心常用指令](#二、Dockerfile 核心常用指令)
[(一)基于 Alpine 制作自定义镜像](#(一)基于 Alpine 制作自定义镜像)
[步骤 1:创建文件](#步骤 1:创建文件)
[步骤 2:构建镜像](#步骤 2:构建镜像)
[步骤 3:查看镜像 & 运行容器](#步骤 3:查看镜像 & 运行容器)
[(二)部署静态 HTML 网站(Nginx)](#(二)部署静态 HTML 网站(Nginx))
[步骤 1:目录结构](#步骤 1:目录结构)
[步骤 2:编写文件](#步骤 2:编写文件)
[步骤 3:构建 & 启动](#步骤 3:构建 & 启动)
[步骤 4:访问测试](#步骤 4:访问测试)
[(三)运行 Java 程序(JAR 包)](#(三)运行 Java 程序(JAR 包))
[步骤 1:目录结构](#步骤 1:目录结构)
[步骤 2:Dockerfile](#步骤 2:Dockerfile)
[步骤 3:构建 & 运行](#步骤 3:构建 & 运行)
一、基础概念
Dockerfile 是一个纯文本格式的配置文件,里面由一条条指令组成,用来自动化定义镜像的构建规则。简单理解:它就是制作 Docker 镜像的脚本说明书,Docker 读取文件内指令,自动完成「选基础系统、装软件、拷文件、配环境、设置启动命令」等一系列操作,最终生成标准镜像。
二、Dockerfile 核心常用指令
| 命令 | 作用 |
| FROM | 基础镜像(必须第一条) |
| WORKDIR | 容器内工作目录 |
| COPY/ADD | 复制本地文件到容器 |
| RUN | 构建时执行命令(安装软件、编译等) |
| ENV | 设置环境变量 |
| EXPOSE | 声明容器监听端口(仅注释,不实际开放) |
| CMD | 容器启动默认命令(只生效最后一条) |
| ENTRYPOINT | 容器入口脚本 / |
|---|
三、常见应用
(一)基于 Alpine 制作自定义镜像
Alpine 是轻量 Linux 镜像,体积极小,适合入门。
步骤 1:创建文件
新建文件夹 demo1,进入目录,创建 Dockerfile:
bash
# 1. 指定基础镜像
FROM alpine:latest
# 2. 设置容器内工作目录
WORKDIR /app
# 3. 构建时执行命令:安装 curl
RUN apk add --no-cache curl
# 4. 声明端口(可选)
EXPOSE 80
# 5. 容器启动后执行的命令
CMD ["echo", "Hello Dockerfile! 镜像启动成功"]
步骤 2:构建镜像
在 Dockerfile 所在目录执行构建命令:
bash
# 格式:docker build -t 镜像名:标签 .
docker build -t my-alpine:v1 .
- -t:给镜像打名称 + 版本标签
- 末尾 . 代表当前目录为构建上下文
步骤 3:查看镜像 & 运行容器
bash
# 查看本地镜像
docker images
# 运行容器
docker run --rm my-alpine:v1
- --rm:容器停止后自动删除,避免残留
(二)部署静态 HTML 网站(Nginx)
最常用业务场景:打包静态页面 + Nginx 做成自定义镜像
步骤 1:目录结构
bash
demo2/
├── Dockerfile
└── index.html # 本地静态页面
步骤 2:编写文件
index.html 内容:
bash
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Docker Nginx 静态站</title>
</head>
<body>
<h1>基于 Dockerfile 构建 Nginx 镜像</h1>
</body>
</html>
Dockerfile 内容:
bash
# 基础镜像:官方 Nginx
FROM nginx:alpine
# 复制本地 html 文件到 Nginx 网页根目录
COPY index.html /usr/share/nginx/html/
# 声明 80 端口
EXPOSE 80
# Nginx 官方镜像已内置 CMD,此处可省略
步骤 3:构建 & 启动
bash
# 构建镜像
docker build -t my-nginx:v1 .
# 启动容器,端口映射:主机8080 -> 容器80
docker run -d -p 8080:80 --name nginx-demo my-nginx:v1
- -d:后台运行(守护进程)
- -p 主机端口:容器端口:端口映射
步骤 4:访问测试
浏览器打开:http://服务器IP:8080,即可看到页面
(三)运行 Java 程序(JAR 包)
后端常用:JDK + SpringBoot Jar 包打包镜像
步骤 1:目录结构
bash
demo3/
├── Dockerfile
└── app.jar # 你的 Java 可执行 jar 包
步骤 2:Dockerfile
bash
# 基于 OpenJDK 基础镜像
FROM openjdk:11-jre-slim
# 工作目录
WORKDIR /app
# 复制 jar 包到容器内
COPY app.jar app.jar
# 声明端口(SpringBoot 默认8080)
EXPOSE 8080
# 启动 Java 程序
CMD ["java", "-jar", "app.jar"]
步骤 3:构建 & 运行
bash
# 构建
docker build -t my-java-app:v1 .
# 运行
docker run -d -p 8080:8080 --name java-demo my-java-app:v1
四、参考网站
https://gitee.com/kennylee/docker