docker入门实战

编写Docker file

# 1. 选择一个基础镜像 (Base Image)
# 这里我们选择官方的 Python 3.11 精简版 (slim),体积小且包含了 Python 运行环境
FROM python:3.11-slim

# 2. 设置工作目录 (Working Directory)
# 容器内部的一个目录,后续的操作都会在这个目录下进行
WORKDIR /app

# 3. 复制依赖文件并安装依赖
# 先复制 requirements.txt,这样如果依赖没变,Docker 可以利用缓存加速构建
# COPY 的 . 表示当前工作目录,即 /app → 文件会出现在 /app/requirements.txt
COPY requirements.txt .
# pip 安装的包会装到 Python 的 site-packages(如 /usr/local/lib/python3.11/site-packages/),不是 /app
RUN pip install --no-cache-dir -r requirements.txt

# 4. 复制我们的程序代码和数据文件到容器的 /app 目录下
COPY main.py .
COPY data.json .

# 5. 告诉 Docker 容器启动时要执行的默认命令
CMD ["python", "main.py"]

制作镜像

docker build -t k8s-demo-app:v1

docker build -t k8s-demo-app:v1 . 只会把镜像“打到”本机 Docker(也就是 Docker Desktop)里,不会自动上传到任何网站。

一、命令整体含义

这条命令的核心作用是:基于当前目录(.)下的Dockerfile文件,构建一个Docker镜像,并给这个镜像打上标签k8s-demo-app:v1

二、逐部分拆解(小白友好版)

我们把命令拆成docker build-t k8s-demo-app:v1.三部分,逐个解释:

1. 基础指令:docker build

  • docker:调用Docker的命令行工具;
  • build:Docker的子命令,含义是“构建镜像”;
  • 组合起来:告诉Docker,我要执行“构建镜像”这个操作。

2. 核心参数:-t k8s-demo-app:v1

  • -t:是--tag的简写,含义是“给镜像打标签(命名)”,这是构建镜像时最常用的参数(没有标签的镜像只能用长串ID标识,极难管理);
  • k8s-demo-app:镜像的名称(你可以理解为“镜像的外号”,比如给你的应用镜像取名叫k8s-demo-app);
  • ::分隔符,用来区分“镜像名称”和“版本标签”;
  • v1:镜像的版本标签(生产环境中绝对不能用latest,用v1/v2.1.0这种语义化版本,能精准追溯镜像版本);
  • 组合起来:给即将构建的镜像命名为k8s-demo-app,版本号标记为v1

运行容器

docker run --rm k8s-demo-app:v1。
Docker 用刚才打包好的镜像启动了一个隔离的运行环境(容器)。在这个容器内部,它自动执行了 python main.py,输出了我们熟悉的结果:

posted @ 2026-03-10 08:14  向着朝阳  阅读(0)  评论(0)    收藏  举报