mcpField
D
docker-basics

docker-basics

github.com/full-stack-skills云与 DevOps3111 次安装4 周前更新
代码仓库

关于 docker-basics

面向 Docker 初学者的基础技能,介绍核心概念、架构、安装和入门操作,并给出学习路径与常见问题说明。

主要功能

  1. 01讲解镜像、容器、仓库和引擎
  2. 02比较容器与虚拟机
  3. 03介绍 Docker 架构
  4. 04提供安装与快速入门步骤
  5. 05说明常见陷阱及处理方法

适用场景

  1. 01从零开始学习 Docker
  2. 02首次安装并验证 Docker
  3. 03判断是否采用容器
  4. 04理解容器与虚拟机的区别

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/full-stack-skills/docker-skills --skill docker-basics

安装后在 Claude Code 中输入/docker-basics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
examples/
01-first-container.md
02-container-lifecycle.md
references/
01-docker-architecture.md
02-container-vs-vm.md
03-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
隔离进程级(共享主机内核)硬件级(完整操作系统)
启动秒级分钟级
大小MBGB
密度每台主机数十个每台主机几个
使用场景微服务、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)

安装路径

操作系统方法备注
macOSDocker Desktop包含 GUI、CLI、Compose、K8s
WindowsDocker Desktop + WSL2推荐使用 WSL2 后端
Linuxapt/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

何时不使用此技能

❌ 跳过✅ 改用
需要编写 Dockerfiledocker-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 概述https://docs.docker.com/get-started/docker-overview/
Docker 概念https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-a-container/
安装 Dockerhttps://docs.docker.com/get-started/get-docker/
Docker 引擎https://docs.docker.com/engine/
Docker 入门 workshophttps://docs.docker.com/get-started/workshop/
Docker CLI 参考https://docs.docker.com/reference/cli/docker/

🧭 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: 支持中文文档和中文注释,详见国内适配章节。

评论

支持 Markdown