插件窝 干货文章 docker怎么创建镜像

docker怎么创建镜像

镜像 Docker 使用 Dockerfile 275    来源:    2025-04-06

Docker 创建镜像的几种方法

Docker 创建镜像主要有以下几种方式,我将详细介绍每种方法:

1. 使用 Dockerfile 构建镜像(最常用方法)

这是最推荐的标准方法,通过编写 Dockerfile 然后构建镜像:

# 1. 创建 Dockerfile 文件
# 示例内容:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
COPY . /app
WORKDIR /app
CMD ["python3", "app.py"]

# 2. 构建镜像
docker build -t my-image:latest .

# 选项说明:
# -t 指定镜像名称和标签
# . 表示使用当前目录下的 Dockerfile

2. 从容器创建镜像

# 1. 运行一个容器并做修改
docker run -it ubuntu:20.04 /bin/bash
# 在容器内进行修改,如安装软件等

# 2. 退出容器后,使用 commit 创建新镜像
docker commit <容器ID> my-new-image

3. 使用 docker save 和 docker load

# 导出镜像为 tar 文件
docker save -o my-image.tar my-image:latest

# 从 tar 文件加载镜像
docker load -i my-image.tar

4. 从已有镜像创建

# 基于已有镜像创建新镜像
docker tag source-image:tag new-image:new-tag

5. 使用 docker import

# 从文件系统归档创建镜像
docker import /path/to/archive.tar my-image:latest

最佳实践建议

  1. 优先使用 Dockerfile:这是最可重复、最易于维护的方法
  2. 保持镜像精简:使用多阶段构建,清理不必要的文件
  3. 使用 .dockerignore:排除不需要的文件,减小镜像体积
  4. 合理使用缓存:将不常变化的指令放在 Dockerfile 前面
  5. 为镜像打标签:使用有意义的标签,避免使用 latest

高级技巧:多阶段构建

# 第一阶段:构建应用
FROM golang:1.19 as builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# 第二阶段:只包含运行时
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]

这种方法可以显著减小最终镜像的大小。

希望这些信息对您有所帮助!如需更详细的某个方法的说明,请告诉我。