5 min read

July 28, 2025

Let the docker grow up!

Notes

Let the docker grow up!

太好了,现在我们进入 Docker 实战进阶阶段!我来先带你掌握:


Network

与 docker 有关的网络配置

Log

关于docker的第一次探索记录…

顺便探索了一下MCP

✅ 第一部分:命令行中最常用的 Docker 命令(附示例)

目的命令说明
📦 构建镜像docker build -t 镜像名 .从当前目录的 Dockerfile 构建镜像
🚀 运行容器docker run -it 镜像名启动一个交互式容器
🔌 映射端口docker run -p 宿主端口:容器端口 镜像名将容器端口映射到主机
🗂️ 挂载目录docker run -v 本地目录:容器目录 镜像名让容器访问本地文件
🧼 停止并删除容器docker rm -f 容器ID或名称立即强制删除容器
📋 查看容器docker ps -a列出所有容器(包括停止的)
🔍 查看镜像docker images列出所有本地镜像
🧹 删除镜像docker rmi 镜像名或ID删除本地镜像
🧾 查看日志docker logs 容器ID容器运行时的控制台输出
📤 导出镜像docker save -o 文件名.tar 镜像名导出镜像为离线包
📥 导入镜像docker load -i 文件名.tar导入 .tar 镜像文件
🔧 进入容器终端docker exec -it 容器ID /bin/bash进入正在运行的容器

✅ 第二部分:Dockerfile 模板(通用结构讲解)

一个标准 Dockerfile 的结构如下:

# ① 选择基础镜像
FROM python:3.10-slim

# ② 设置工作目录(容器内部的文件位置)
WORKDIR /app

# ③ 拷贝文件(从宿主机拷贝到容器中)
COPY requirements.txt .

# ④ 安装依赖
RUN pip install -r requirements.txt

# ⑤ 再拷贝程序代码
COPY . .

# ⑥ 暴露端口(可选,用于文档提示)
EXPOSE 5000

# ⑦ 设置环境变量(可选)
ENV PYTHONUNBUFFERED=1

# ⑧ 容器启动后默认执行的命令
CMD ["python", "app.py"]

🔧 模板讲解:

指令作用
FROM指定你想以哪个镜像为基础,比如 ubuntupython:3.10
WORKDIR相当于 cd,后续命令都以这个目录为当前目录
COPY把宿主机的文件复制到容器内部(可以是 ., app.py, requirements.txt 等)
RUN在构建时执行的命令,比如安装依赖、构建代码等
CMD容器启动时执行的命令(只能有一个)
ENV设置环境变量,类似 export
EXPOSE说明容器哪个端口对外服务(仅文档提示作用)

📦 示例任务:Flask 项目 Dockerfile(基础+可扩展)

FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

ENV FLASK_APP=app.py
ENV FLASK_ENV=development

EXPOSE 5000

CMD ["flask", "run", "--host=0.0.0.0", "--port=5000"]

这个版本支持热重载、debug 模式,适合开发环境使用。


🚀 下一步建议

如果你掌握了这些,我们可以继续进入中级任务,比如:

  • 制作带 Redis/MySQL 的多容器项目(Docker Compose)
  • 制作支持参数化部署的镜像(ARGENTRYPOINT
  • 构建多阶段镜像以减小体积
  • 运行带定时任务 / 多进程的容器

This post was created using the automated script.