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

docker镜像怎么创建

镜像 Docker 创建 容器 378    来源:    2025-04-06

Docker镜像创建指南

Docker镜像是容器运行的基础,创建镜像主要有以下几种方法:

1. 使用Dockerfile创建镜像

这是最常用的方法,通过编写Dockerfile定义镜像构建步骤:

  1. 创建Dockerfile文件
# 基础镜像
FROM ubuntu:20.04

# 维护者信息
LABEL maintainer="yourname@example.com"

# 更新软件包并安装必要工具
RUN apt-get update && apt-get install -y \
    curl \
    vim \
    && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 复制文件到镜像中
COPY . /app

# 暴露端口
EXPOSE 80

# 容器启动时执行的命令
CMD ["python", "app.py"]
  1. 构建镜像
docker build -t my-image:1.0 .

2. 基于现有容器创建镜像

  1. 运行一个容器并做修改
docker run -it ubuntu:20.04 /bin/bash
# 在容器内进行修改,如安装软件等
  1. 提交修改创建新镜像
docker commit <container-id> my-new-image:1.0

3. 使用docker import从压缩包创建

docker import http://example.com/exampleimage.tgz example/imagerepo

4. 使用docker save/load保存和加载镜像

# 保存镜像为tar文件
docker save -o my-image.tar my-image:1.0

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

最佳实践建议

  1. 保持镜像精简:只包含必要的依赖
  2. 使用多阶段构建:减少最终镜像大小
  3. 合理使用.dockerignore:避免不必要的文件被复制到镜像中
  4. 固定基础镜像版本:避免使用latest标签
  5. 最小化层数:合并RUN指令减少镜像层数
  6. 安全性考虑:避免在镜像中存储敏感信息

多阶段构建示例

# 第一阶段:构建环境
FROM golang:1.16 AS builder
WORKDIR /go/src/app
COPY . .
RUN go build -o myapp

# 第二阶段:运行环境
FROM alpine:latest  
WORKDIR /root/
COPY --from=builder /go/src/app/myapp .
CMD ["./myapp"]

通过以上方法,您可以灵活地创建适合您需求的Docker镜像。