网站备案号:苏ICP备2026058756号-1号
Personal Knowledge Base

技术学习笔记

用于记录 Docker、Docker Compose、 ChatGPT、AI 工具以及服务器部署相关知识。

Docker 基础

Docker 是一种容器化技术,可以把程序、 依赖环境和配置封装成统一镜像, 从而解决“在我的电脑上能运行”的环境差异问题。

Docker 核心概念

Image 是模板,Container 是运行中的实例, Volume 用于持久化数据, Network 用于容器之间通信。

概念 作用
Image Docker 镜像,相当于应用运行模板
Container 镜像启动后的运行实例
Volume 保存数据库、日志和其他持久数据
Network 实现容器之间的网络通信
Dockerfile 定义如何构建 Docker 镜像
Compose 管理多个容器组成的应用

Docker 常用命令

查看 Docker 版本

docker --version

docker version

查看运行中的容器

docker ps

查看所有容器

docker ps -a

查看镜像

docker images

拉取镜像

docker pull nginx

docker pull mysql:8.0

启动容器

docker start nginx

停止容器

docker stop nginx

查看日志

docker logs nginx

docker logs -f nginx

进入容器

docker exec -it nginx bash

删除容器

docker rm nginx

删除镜像

docker rmi nginx

Docker Compose

Docker Compose 用于一次性管理多个容器。 例如一个 Web 系统通常包含:

Nginx
   │
   ▼
FastAPI
   │
   ▼
MySQL

启动

docker compose up -d

停止

docker compose down

查看状态

docker compose ps

查看日志

docker compose logs -f

重新创建容器

docker compose up -d --force-recreate
Compose v2 推荐命令: docker compose 而不是旧版本: docker-compose

Docker 数据持久化

容器本身可以随时删除, 因此数据库数据不能只保存在容器内部。

MySQL 常见挂载:

volumes:

  - ./mysql/data:/var/lib/mysql

  - ./mysql/conf.d:/etc/mysql/conf.d

左边:

./mysql/data

是服务器本地目录。

右边:

/var/lib/mysql

是容器内部目录。

删除容器不会删除宿主机挂载的数据。 但是手动执行 rm -rf mysql/data 会真正删除数据库文件。

ChatGPT 基础

ChatGPT 可以作为代码助手、学习助手、 产品设计助手、文档助手和问题分析工具。

最重要的一点

不要只告诉 AI “帮我做某件事”, 尽量告诉它背景、目标、约束条件和期望输出。

普通 Prompt

帮我写一个 Docker Compose

更好的 Prompt

帮我创建一个 Docker Compose。

要求:

1. Ubuntu 22.04
2. MySQL 8
3. Nginx
4. MySQL 数据持久化到 ./mysql/data
5. Nginx 配置持久化到 ./nginx/conf.d
6. 自动重启
7. 使用独立 Docker Network
8. 给出完整 compose.yaml

Prompt 编写技巧

一个比较稳定的 Prompt 可以采用:

角色
+
背景
+
任务
+
约束
+
输入
+
输出格式

示例

你是一名资深 Linux 运维工程师。

背景:
Ubuntu 服务器运行 Docker。

任务:
排查 Docker 服务启动失败。

错误:
failed to load listeners

要求:
1. 分析原因
2. 给出排查顺序
3. 给出具体命令
4. 不要直接删除 Docker 数据
遇到程序错误时,最好把完整错误日志直接给 ChatGPT, 比只描述“程序运行不了”更容易准确定位。

AI 工作流

使用 ChatGPT 做技术工作的一个推荐流程:

需求
 ↓
ChatGPT 分析
 ↓
生成方案
 ↓
生成代码
 ↓
实际运行
 ↓
复制错误日志
 ↓
ChatGPT 排查
 ↓
修改
 ↓
再次验证

不要追求一次生成完美代码, 更有效的方式是让 AI 参与整个迭代过程。

学习方法

Docker 学习路线

Linux 基础
    ↓
Docker Image
    ↓
Container
    ↓
Volume
    ↓
Network
    ↓
Dockerfile
    ↓
Docker Compose
    ↓
Nginx
    ↓
MySQL
    ↓
Redis
    ↓
CI/CD
    ↓
Kubernetes

ChatGPT 学习路线

基础提问
   ↓
结构化 Prompt
   ↓
代码生成
   ↓
代码 Debug
   ↓
文档分析
   ↓
工具调用
   ↓
API
   ↓
Agent
   ↓
AI 工作流
学习原则

学技术最有效的方法不是只看教程, 而是搭建真实项目,在遇到问题时逐个解决。