Docker底层- 命令详解

Docker 命令详解

1. docker start - 启动容器

作用:启动已停止的容器,创建新的进程和 Namespace。

复制代码
┌─────────────────────────────────────────────────────────┐
│  docker start 的执行过程                                │
│                                                          │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 1. 容器状态:Stopped                             │  │
│  │                                                  │  │
│  │  容器元数据存在,但进程已停止                     │  │
│  │  Namespace 已销毁                                │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      │ docker start                     │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 2. 创建新进程和 Namespace                        │  │
│  │                                                  │  │
│  │  • 创建新的 PID Namespace                        │  │
│  │  • 创建新的 Network Namespace                    │  │
│  │  • 创建新的 Mount Namespace                      │  │
│  │  • 创建新的 IPC Namespace                        │  │
│  │  • 创建新的 UTS Namespace                        │  │
│  │  • 创建新的 User Namespace                       │  │
│  │  • 创建新的 Cgroup Namespace                     │  │
│  │  • 启动容器主进程(PID 1)                       │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 3. 容器状态:Running                             │  │
│  │                                                  │  │
│  │  新进程 (PID: 12345)                            │  │
│  │  ├─ PID Namespace: [4026532000]                │  │
│  │  ├─ Network Namespace: [4026532001]            │  │
│  │  ├─ Mount Namespace: [4026532002]              │  │
│  │  └─ ... (其他 Namespace)                        │  │
│  │                                                  │  │
│  │  关键:每次 start 都会创建新的进程和 Namespace!   │  │
│  └──────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘

2. docker stop - 停止容器

作用:停止运行中的容器,发送信号终止进程,进程退出后 Namespace 会被销毁。

3. docker restart - 重启容器

作用:先停止容器,再启动容器,相当于 stop + start。

复制代码
┌─────────────────────────────────────────────────────────┐
│  docker restart 的执行过程                               │
│                                                          │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 1. 容器状态:Running                             │  │
│  │                                                  │  │
│  │  进程 (PID: 12345)                              │  │
│  │  Namespace: [4026532000]                        │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      │ docker restart                   │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 2. 停止容器(containerStop)                     │  │
│  │                                                  │  │
│  │  • 发送 SIGTERM                                  │  │
│  │  • 等待进程退出                                  │  │
│  │  • 如果超时,发送 SIGKILL                        │  │
│  │  • 进程终止                                      │  │
│  │  • Namespace 销毁                                │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      │ 容器状态:Stopped                │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 3. 启动容器(containerStart)                    │  │
│  │                                                  │  │
│  │  • 创建新的 Namespace                           │  │
│  │  • 启动新的进程 (PID: 12346)                     │  │
│  │  • Namespace: [4026532001] ← 新的!              │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      │ 容器状态:Running                │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 4. 结果                                          │  │
│  │                                                  │  │
│  │  旧进程:已终止                                   │  │
│  │  新进程:已启动                                   │  │
│  │  旧 Namespace:已销毁                             │  │
│  │  新 Namespace:已创建                              │  │
│  │                                                  │  │
│  │  关键:restart = stop + start,创建新的进程!      │  │
│  └──────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘

4. docker rm - 删除容器

作用:删除容器,先停止容器(如果运行中),然后清理文件系统和元数据。

复制代码
┌─────────────────────────────────────────────────────────┐
│  docker rm 的执行过程                                    │
│                                                          │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 1. 检查容器状态                                  │  │
│  │                                                  │  │
│  │  如果容器正在运行:                               │  │
│  │  • 必须先用 docker stop 停止                     │  │
│  │  • 或者使用 -f 强制删除(会先 kill)              │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      │ 容器已停止                        │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 2. 停止容器(如果还在运行)                      │  │
│  │                                                  │  │
│  │  • 发送 SIGTERM,等待退出                         │  │
│  │  • 如果超时,发送 SIGKILL                        │  │
│  │  • 进程终止                                      │  │
│  │  • Namespace 销毁                                │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 3. 清理资源                                      │  │
│  │                                                  │  │
│  │  • 停止统计收集                                  │  │
│  │  • 释放文件系统层(RWLayer)                     │  │
│  │  • 清理网络链接                                  │  │
│  │  • 删除容器元数据                                │  │
│  │  • 删除容器目录                                  │  │
│  └──────────────────────────────────────────────────┘  │
│                      │                                  │
│                      ↓                                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ 4. 容器已删除                                    │  │
│  │                                                  │  │
│  │  • 进程:已终止                                   │  │
│  │  • Namespace:已销毁                             │  │
│  │  • 文件系统:已清理                               │  │
│  │  • 元数据:已删除                                 │  │
│  │                                                  │  │
│  │  关键:rm 会彻底删除容器,无法恢复!               │  │
│  └──────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘
相关推荐
qq_452396231 小时前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_1 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
Elastic 中国社区官方博客3 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
jsons13 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
皮皮冰燃4 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char4 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
云栖梦泽5 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
福大大架构师每日一题5 小时前
openclaw v2026.4.24 发布:Google Meet 深度集成、DeepSeek V4 上线、浏览器自动化与插件架构全面升级
运维·架构·自动化·openclaw
yipiantian5 小时前
在Claude项目中实现跨目录访问Skills
linux·运维·服务器
Agent产品评测局5 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化