Fix and update

This commit is contained in:
baohua
2026-02-09 11:34:35 -08:00
parent e669ee0fe8
commit 63377d0431
136 changed files with 2146 additions and 262 deletions

View File

@@ -1,5 +1,9 @@
## Docker 容器
## Docker 容器
容器是 Docker 技术的核心是应用实际运行的载体本节将从容器的本质与虚拟机的区别存储层机制以及生命周期管理等方面全面解析 Docker 容器
### 一句话理解容器
> **容器是镜像的运行实例如果把镜像比作程序那么容器就是进程**
@@ -69,6 +73,10 @@
### 容器的存储层
### 容器的存储层
理解容器的存储层机制对于数据的持久化和镜像的优化至关重要本节将介绍容器的可写层以及 Copy-on-Write 机制
#### 镜像层 + 容器层
当容器运行时Docker 会在镜像的只读层之上创建一个**可写层**容器存储层
@@ -109,13 +117,17 @@
```bash
## 创建容器,写入数据
$ docker run -it ubuntu bash
root@abc123:/# echo "important data" > /data.txt
root@abc123:/# exit
## 删除容器
$ docker rm abc123
## 数据丢了!没有任何办法恢复!
## 数据丢了!没有任何办法恢复!
```
@@ -130,9 +142,11 @@ $ docker rm abc123
```bash
## 使用数据卷(推荐)
$ docker run -v mydata:/var/lib/mysql mysql
## 使用绑定挂载
$ docker run -v /host/path:/container/path nginx
```
@@ -140,6 +154,10 @@ $ docker run -v /host/path:/container/path nginx
### 容器的生命周期
### 容器的生命周期
掌握容器的生命周期对于管理和调试 Docker 应用非常重要下图展示了容器从创建到删除的完整状态流转
```
┌──────────────────────────────────────────────────┐
│ 容器生命周期 │
@@ -169,23 +187,30 @@ $ docker run -v /host/path:/container/path nginx
#### 常用生命周期命令
运行以下命令
```bash
## 创建并启动容器(最常用)
$ docker run nginx
## 分步操作
$ docker create nginx # 创建容器(不启动)
$ docker start abc123 # 启动容器
## 停止容器
$ docker stop abc123 # 优雅停止(发送 SIGTERM等待后发送 SIGKILL
$ docker kill abc123 # 强制停止(直接发送 SIGKILL
## 暂停/恢复(不常用,但有时有用)
$ docker pause abc123 # 暂停容器内所有进程
$ docker unpause abc123 # 恢复
## 删除容器
$ docker rm abc123 # 删除已停止的容器
$ docker rm -f abc123 # 强制删除运行中的容器
```
@@ -196,6 +221,9 @@ $ docker rm -f abc123 # 强制删除运行中的容器
```bash
## 主进程运行,容器运行
## 主进程退出,容器停止
## 主进程退出,容器停止
```
@@ -203,9 +231,11 @@ $ docker rm -f abc123 # 强制删除运行中的容器
```bash
## 这个容器会立即退出bash 没有输入就退出了)
$ docker run ubuntu
## 这个容器会持续运行nginx 作为守护进程持续运行)
$ docker run nginx
```