Skip to content
xiaoyang 的头像xiaoyang发布于 2025-02-081,100 字阅读约 4 分钟浏览加载中

Dockerfile :构建自己的 Docker 镜像 ​

image-20250208115907652

1. 什么是 Dockerfile? ​

Dockerfile 是一个文本文件,包含了构建 Docker 镜像的所有指令。

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

通过定义一系列命令和参数,Dockerfile 指导 Docker 构建一个自定义的镜像。

2. 基本指令介绍 ​

FROM ​

指定基础镜像,所有构建的起点:

dockerfile
FROM nginx

WORKDIR ​

设置工作目录:

dockerfile
WORKDIR /app

COPY/ADD ​

复制文件到镜像中:

dockerfile
COPY ./source /app/
# 或者用 ADD(支持自动解压 tar 文件)
ADD ./source.tar /app/

RUN ​

执行构建命令:

dockerfile
# 单行命令
RUN apt-get update

# 多行命令(推荐写法)
RUN apt-get update \
    && apt-get install -y nginx \
    && rm -rf /var/lib/apt/lists/*

EXPOSE ​

声明容器运行时监听的端口:

dockerfile
EXPOSE 80

ENV ​

设置环境变量:

dockerfile
ENV NODE_VERSION 14.17.0

CMD/ENTRYPOINT ​

指定容器启动时运行的命令:

dockerfile
# CMD 可以被覆盖
CMD ["nginx", "-g", "daemon off;"]

# ENTRYPOINT 不会被覆盖
ENTRYPOINT ["nginx"]

3. 实际示例 ​

这是一个构建 Node.js 应用的简单示例:

dockerfile
# 使用 Node.js 官方镜像作为基础
FROM node:14

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制源代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动应用
CMD ["npm", "start"]

4. 构建镜像 ​

在 Dockerfile 所在目录执行:

bash
docker build -t myapp:1.0 .

通过这些基础知识,你就能开始构建自己的 Docker 镜像了。

DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建