Docker 镜像与容器
Dockerfile 详解
Dockerfile 是构建镜像的自动化脚本:
# 基础镜像
FROM ubuntu:22.04
# 维护者信息
LABEL maintainer="bookstack@example.com"
# 安装依赖
RUN apt-get update && apt-get install -y
python3
python3-pip
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
# 复制文件
COPY requirements.txt .
COPY app.py .
# 安装 Python 依赖
RUN pip3 install -r requirements.txt
# 暴露端口
EXPOSE 8080
# 启动命令
CMD ["python3", "app.py"]
构建优化
分层缓存
# 推荐:依赖层独立缓存
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
多阶段构建
# 构建阶段
FROM golang:1.22 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o app .
# 运行阶段
FROM alpine:latest
RUN apk add --no-cache ca-certificates
COPY --from=builder /app/app /app
CMD ["/app"]
数据管理
# 创建数据卷
docker volume create mydata
# 使用卷
docker run -v mydata:/data nginx
# 绑定挂载
docker run -v /host/path:/container/path nginx
网络模式
# 默认 bridge
docker run --network bridge nginx
# host 模式
docker run --network host nginx
# 自定义网络
docker network create mynet
docker run --network mynet nginx
