构造Docker容器通常有两种主要方式:使用docker commit
命令从现有容器创建镜像,或者使用Dockerfile
构建镜像。下面我将详细介绍这两种方法。
这是推荐的标准方法,因为它是可重复、可版本控制的。
# 指定基础镜像
FROM ubuntu:20.04
# 维护者信息
LABEL maintainer="yourname@example.com"
# 更新软件包并安装必要工具
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# 设置工作目录
WORKDIR /app
# 复制本地文件到容器中
COPY . /app
# 安装Python依赖
RUN pip3 install -r requirements.txt
# 暴露端口
EXPOSE 8080
# 设置环境变量
ENV NAME World
# 容器启动时运行的命令
CMD ["python3", "app.py"]
docker build -t my-custom-image .
docker run -d -p 4000:8080 --name my-container my-custom-image
docker run -it --name temp-container ubuntu:20.04 /bin/bash
# 在容器内执行
apt-get update
apt-get install -y python3
exit
docker commit temp-container my-custom-image
docker rm temp-container
.dockerignore
排除不必要的文件# 构建阶段
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"]
ARG VERSION=latest
FROM ubuntu:$VERSION
ENV APP_HOME /app
WORKDIR $APP_HOME
通过以上方法,你可以灵活地构造满足自己需求的Docker容器。Dockerfile方式因其可重复性和版本控制优势,是生产环境推荐的做法。