关于 docker-basics
面向 Docker 初学者的基础技能,介绍核心概念、架构、安装和入门操作,并给出学习路径与常见问题说明。
主要功能
- 01讲解镜像、容器、仓库和引擎
- 02比较容器与虚拟机
- 03介绍 Docker 架构
- 04提供安装与快速入门步骤
- 05说明常见陷阱及处理方法
适用场景
- 01从零开始学习 Docker
- 02首次安装并验证 Docker
- 03判断是否采用容器
- 04理解容器与虚拟机的区别
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ full-stack-skills/ docker-skills --skill docker-basics安装后在 Claude Code 中输入/docker-basics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/01-first-container.md02-container-lifecycle.mdreferences/01-docker-architecture.md02-container-vs-vm.md03-installation-guide.md详细介绍
Docker 基础 — 概念与基础
Docker 生态的第一入口。从零开始理解 Docker 概念、架构和基础操作。
适用场景
| ✅ 适用 | ❌ 跳过 |
|---|---|
| 刚接触 Docker,从头开始学习 | 已熟练掌握 Docker |
| 需要了解容器与 VM 的区别 | 需要特定的 Dockerfile/CLI 命令 → docker-build / docker-run |
| 首次设置 Docker | 需要多容器编排 → docker-compose |
| 评估是否采用 Docker | 需要安全扫描 → docker-security |
核心概念
| 概念 | 定义 | 类比 |
|---|---|---|
| Image | 包含应用和依赖项的只读模板 | 类定义 |
| Container | 可运行的 Image 实例 | 对象实例 |
| Registry | 用于存储和共享 Image 的仓库 | 应用商店 |
| Docker Engine | 用于构建和运行容器的运行时 | JVM / Python 解释器 |
容器与 VM 的区别
| 方面 | 容器 | VM |
|---|---|---|
| 隔离 | 进程级(共享主机内核) | 硬件级(完整操作系统) |
| 启动 | 秒级 | 分钟级 |
| 大小 | MB | GB |
| 密度 | 每台主机数十个 | 每台主机几个 |
| 使用场景 | 微服务、CI/CD、开发环境 | 遗留应用、多操作系统、强隔离 |
Docker 架构
┌─────────────────────────────┐
│ Docker CLI │ ← docker build/run/push...
├─────────────────────────────┤
│ Docker Daemon │ ← dockerd: manages images, containers, networks, volumes
├─────────────────────────────┤
│ containerd │ ← container runtime supervisor
├─────────────────────────────┤
│ runc │ ← OCI runtime (actually runs containers)
└─────────────────────────────┘
│
┌────┴────┐
▼ ▼
Registry Host OS
(Docker (Linux kernel:
Hub) namespaces, cgroups)
快速入门
# Verify installation
docker --version
docker run hello-world
# Pull and run your first container
docker pull nginx:alpine
docker run -d -p 8080:80 --name my-nginx nginx:alpine
# Check it's running
curl localhost:8080
docker ps
docker stop my-nginx
Docker 对象模型
docker run → Container (running instance of an image)
docker build → Image (built from Dockerfile)
docker pull → Image (downloaded from Registry)
docker push → Image (uploaded to Registry)
docker volume → Volume (persistent data)
docker network → Network (container communication)
安装路径
| 操作系统 | 方法 | 备注 |
|---|---|---|
| macOS | Docker Desktop | 包含 GUI、CLI、Compose、K8s |
| Windows | Docker Desktop + WSL2 | 推荐使用 WSL2 后端 |
| Linux | apt/yum install docker-ce | 无 GUI;将用户添加到 docker 组 |
| CI/服务器 | 仅 Docker Engine | 占用空间小 |
主要 CLI 命令组
docker container → create, run, start, stop, rm, ls, inspect, logs, exec
docker image → build, pull, push, tag, ls, rm, prune, inspect
docker volume → create, ls, rm, prune, inspect
docker network → create, ls, rm, inspect, connect, disconnect
docker system → df, prune, info, events
工作流 — 推荐学习路径
步骤 1:理解概念:阅读核心概念(Image/Container/Registry/Engine)
步骤 2:安装验证:运行 docker run hello-world 确认安装成功
步骤 3:第一个容器:运行 docker run -d -p 8080:80 nginx:alpine 进行体验
步骤 4:进阶学习:掌握 docker build(编写 Dockerfile)→ docker run(管理容器)
步骤 5:进入生态:按需探索 docker-dockerfile/docker-build/docker-compose
注意事项 — 常见问题
- 混淆 Image 与 Container:每次运行
docker run都会创建一个新容器。→ 解决方法:使用docker start <name>重启现有容器;使用docker ps -a查看已停止的容器。 - Root 权限:Linux 需要使用
sudo,除非用户已添加到docker组(安全风险:docker 组拥有 root 访问权限)。→ 解决方法:运行sudo usermod -aG docker $USER && newgrp docker,或使用 rootless Docker。 - 磁盘膨胀:旧 Image、卷和缓存会迅速累积。→ 解决方法:每月运行
docker system prune -a;先使用docker system df检查。 - 端口冲突:
-p 8080:80表示主机端口 8080 → 容器端口 80。如果主机端口已被占用,请更改主机端口。→ 解决方法:运行lsof -i :8080查找占用该端口的进程,然后使用其他端口。 - 数据丢失:没有卷时,容器数据是临时的。→ 解决方法:始终对有状态数据使用
-v volume_name:/data;切勿依赖容器文件系统。
边界 — 能力边界(适用与不适用场景)
| 分类 | 场景 | 说明 |
|---|---|---|
| ✅ 能做 | Docker 概念教学(Image/Container/Registry/Engine) | 从零讲解核心概念 |
| ✅ 能做 | 安装指导(macOS/Linux/Windows) | 提供各平台的安装步骤 |
| ✅ 能做 | 第一个容器实操 | docker run hello-world + nginx 示例 |
| ⚠️ 需条件 | 深入理解容器原理 | 建议结合 Linux namespace/cgroups 文档学习 |
| ⚠️ 需条件 | Docker Compose 多容器 | 掌握基础概念后,学习 docker-compose 技能 |
| ❌ 超范围 | 编写 Dockerfile | 使用 docker-dockerfile |
| ❌ 超范围 | 构建/推送镜像 | 使用 docker-build |
| ❌ 超范围 | 生产部署/Swarm/K8s | 使用 docker-production |
何时不使用此技能
| ❌ 跳过 | ✅ 改用 |
|---|---|
| 需要编写 Dockerfile | docker-build |
| 需要管理容器 | docker-run |
| 需要多容器应用 | docker-compose |
| 已了解 Docker 基础 | 直接学习特定技能 |
Security & Stability
- All examples are educational. Use official images and verified publishers in production.
- Docker group membership on Linux is equivalent to root access.
- No executable scripts bundled. This skill teaches concepts and basic operations.
📚 官方文档参考
🧭 Docker Skills Journey
📍 You are here:
docker-basics— Step 1: Docker 概念与基础
basics → build → run → networking/storage → compose → security/cicd → production/troubleshooting → ai-ml
→ Next: docker-build — Write Dockerfiles and build optimized images
FAQ
Q1: 如何快速上手此技能? A: 参考上方的快速开始章节,按步骤操作即可。
Q2: 遇到版本不兼容问题怎么办? A: 检查依赖版本,使用 lock 文件锁定,参考常见陷阱章节。
Q3: 如何在生产环境使用? A: 参考最佳实践章节,确保配置正确,做好监控和日志。
Q4: 性能如何优化? A: 参考性能优化相关文档,使用缓存、索引等手段。
Q5: 如何贡献或反馈问题? A: 在 GitHub 仓库提交 Issue 或 Pull Request。
Q6: 是否支持中文? A: 支持中文文档和中文注释,详见国内适配章节。