目录

一、基础概念

二、Dockerfile 核心常用指令

三、常见应用

(一)基于 Alpine 制作自定义镜像

步骤 1:创建文件

步骤 2:构建镜像

步骤 3:查看镜像 & 运行容器

(二)部署静态 HTML 网站(Nginx)

步骤 1:目录结构

步骤 2:编写文件

步骤 3:构建 & 启动

步骤 4:访问测试

(三)运行 Java 程序(JAR 包)

步骤 1:目录结构

步骤 2:Dockerfile

步骤 3:构建 & 运行

四、参考网站


一、基础概念

        Dockerfile 是一个纯文本格式的配置文件,里面由一条条指令组成,用来自动化定义镜像的构建规则。简单理解:它就是制作 Docker 镜像的脚本说明书,Docker 读取文件内指令,自动完成「选基础系统、装软件、拷文件、配环境、设置启动命令」等一系列操作,最终生成标准镜像。

二、Dockerfile 核心常用指令

命令 作用
FROM 基础镜像(必须第一条)
WORKDIR 容器内工作目录
COPY/ADD 复制本地文件到容器
RUN 构建时执行命令(安装软件、编译等)
ENV 设置环境变量
EXPOSE 声明容器监听端口(仅注释,不实际开放)
CMD 容器启动默认命令(只生效最后一条)
ENTRYPOINT 容器入口脚本 / 

三、常见应用

(一)基于 Alpine 制作自定义镜像

Alpine 是轻量 Linux 镜像,体积极小,适合入门。

步骤 1:创建文件

新建文件夹 demo1,进入目录,创建 Dockerfile:

# 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 所在目录执行构建命令:

# 格式:docker build -t 镜像名:标签 .
docker build -t my-alpine:v1 .
  • -t:给镜像打名称 + 版本标签
  • 末尾 . 代表当前目录为构建上下文

步骤 3:查看镜像 & 运行容器

# 查看本地镜像
docker images

# 运行容器
docker run --rm my-alpine:v1
  • --rm:容器停止后自动删除,避免残留

(二)部署静态 HTML 网站(Nginx)

最常用业务场景:打包静态页面 + Nginx 做成自定义镜像

步骤 1:目录结构

demo2/
├── Dockerfile
└── index.html   # 本地静态页面

步骤 2:编写文件

index.html 内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Docker Nginx 静态站</title>
</head>
<body>
    <h1>基于 Dockerfile 构建 Nginx 镜像</h1>
</body>
</html>

Dockerfile 内容:

# 基础镜像:官方 Nginx
FROM nginx:alpine

# 复制本地 html 文件到 Nginx 网页根目录
COPY index.html /usr/share/nginx/html/

# 声明 80 端口
EXPOSE 80

# Nginx 官方镜像已内置 CMD,此处可省略

步骤 3:构建 & 启动

# 构建镜像
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:目录结构

demo3/
├── Dockerfile
└── app.jar   # 你的 Java 可执行 jar 包

步骤 2:Dockerfile

# 基于 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:构建 & 运行

# 构建
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

https://gitee.com/zhengqingya/docker-compose

https://gitee.com/Bruce-Tools/tools-docker.git

更多推荐