Update Grafana to v13, add version notes

This commit is contained in:
yeasy
2026-04-25 15:50:13 +00:00
parent 81b49cb00c
commit ec4ab5232b
55 changed files with 220 additions and 70 deletions
+18 -16
View File
@@ -29,6 +29,8 @@ Hello world
```
这与直接执行 `/bin/echo 'Hello world'` 几乎没有区别但实际上已经启动了一个完整的 Ubuntu 容器来执行这条命令
> **版本说明**示例使用 `ubuntu:24.04`这是最新 LTS 版本如需其他版本可替换为 `ubuntu:22.04``ubuntu:20.04`
#### 交互式容器
启动一个可以交互的 bash 终端
@@ -82,25 +84,25 @@ flowchart TD
| 选项 | 说明 | 示例 |
|------|------|------|
| `-d` | 后台运行 (detach)| `docker run -d nginx` |
| `-it` | 交互式终端 | `docker run -it ubuntu bash` |
| `--name` | 指定容器名称 | `docker run --name myapp nginx` |
| `--rm` | 退出后自动删除容器 | `docker run --rm ubuntu echo hi` |
| `-d` | 后台运行 (detach)| `docker run -d nginx:latest` |
| `-it` | 交互式终端 | `docker run -it ubuntu:24.04 bash` |
| `--name` | 指定容器名称 | `docker run --name myapp nginx:latest` |
| `--rm` | 退出后自动删除容器 | `docker run --rm ubuntu:24.04 echo hi` |
#### 端口映射
```bash
## 将容器的 80 端口映射到宿主机的 8080 端口
$ docker run -d -p 8080:80 nginx
$ docker run -d -p 8080:80 nginx:latest
## 随机映射端口
$ docker run -d -P nginx
$ docker run -d -P nginx:latest
## 只绑定到 localhost
$ docker run -d -p 127.0.0.1:8080:80 nginx
$ docker run -d -p 127.0.0.1:8080:80 nginx:latest
```
#### 数据卷挂载
@@ -108,15 +110,15 @@ $ docker run -d -p 127.0.0.1:8080:80 nginx
```bash
## 挂载命名卷
$ docker run -v mydata:/data nginx
$ docker run -v mydata:/data nginx:latest
## 挂载宿主机目录
$ docker run -v /host/path:/container/path nginx
$ docker run -v /host/path:/container/path nginx:latest
## 只读挂载
$ docker run -v /host/path:/container/path:ro nginx
$ docker run -v /host/path:/container/path:ro nginx:latest
```
#### 环境变量
@@ -136,11 +138,11 @@ $ docker run --env-file .env myapp
```bash
## 限制内存
$ docker run -m 512m nginx
$ docker run -m 512m nginx:latest
## 限制 CPU
$ docker run --cpus=1.5 nginx
$ docker run --cpus=1.5 nginx:latest
```
### 5.1.5 启动已终止容器
@@ -186,11 +188,11 @@ root@ba267838cc1b:/# ps
```bash
## 这个容器会立即退出(echo 执行完就结束了)
$ docker run ubuntu echo "hello"
$ docker run ubuntu:24.04 echo "hello"
## 解决:使用能持续运行的命令
$ docker run -d nginx # nginx 是持续运行的服务
$ docker run -d nginx:latest # nginx 是持续运行的服务
```
详细解释见[后台运行](5.2_daemon.md)
@@ -201,11 +203,11 @@ $ docker run -d nginx # nginx 是持续运行的服务
```bash
## 错误:没有 -p 参数,外部无法访问
$ docker run -d nginx
$ docker run -d nginx:latest
## 正确:映射端口
$ docker run -d -p 80:80 nginx
$ docker run -d -p 80:80 nginx:latest
```
#### Q容器内修改的文件丢失
+8 -6
View File
@@ -122,17 +122,19 @@ $ docker container ls -a
```bash
## Web 服务器
$ docker run -d -p 80:80 nginx
$ docker run -d -p 80:80 nginx:latest
## 数据库
$ docker run -d -p 3306:3306 mysql:8
$ docker run -d -p 3306:3306 mysql:8.0
## 缓存服务
$ docker run -d -p 6379:6379 redis
$ docker run -d -p 6379:6379 redis:latest
```
> **版本说明**示例使用常见的标签如 `latest` 或稳定大版本号如 `mysql:8.0`具体版本可根据需求调整生产环境建议明确指定版本号 `mysql:8.0.35`而非使用 `latest`
#### 2. 调试时先用前台模式
当容器启动有问题时**去掉 `-d` 参数** 可以直接看到输出和错误
@@ -140,7 +142,7 @@ $ docker run -d -p 6379:6379 redis
```bash
## 有问题的容器,先前台运行看看发生了什么
$ docker run myimage:latest
$ docker run myimage:v1.0.0
```
#### 3. 使用 --rm 自动清理
@@ -161,7 +163,7 @@ Hello, World!
```bash
## 后台启动
$ docker run -d --name myapp myimage:latest
$ docker run -d --name myapp myimage:v1.0.0
## 查看最近 100 行日志
@@ -194,7 +196,7 @@ $ docker logs -t myapp
3. **以交互模式调试**
```bash
$ docker run -it myimage:latest /bin/sh
$ docker run -it myimage:v1.0.0 /bin/sh
# 进入容器手动执行命令,查找问题
```
+3 -1
View File
@@ -204,7 +204,7 @@ $ docker stop $(docker ps -q) && docker container prune -f
```dockerfile
## Dockerfile 示例
FROM node:22
FROM node:22-alpine
...
## 使用 exec 形式确保信号能传递给 node 进程
@@ -212,6 +212,8 @@ FROM node:22
CMD ["node", "server.js"]
```
> **版本说明**示例使用 `node:22-alpine`这是一个精简的 Node.js 22 版本镜像可根据需求替换为其他版本 `node:20-alpine``node:latest`
#### Q容器无法停止
```bash
+2
View File
@@ -13,6 +13,8 @@ $ docker export 7691a814370e > ubuntu.tar
```
这样将导出容器快照到本地文件
> **版本说明**导出的容器快照不包含镜像版本历史导入时可以自定义标签和版本号
### 5.5.2 导入容器快照
可以使用 `docker import` 从容器快照文件中再导入为镜像例如
+10
View File
@@ -6,6 +6,16 @@
本章将具体介绍如何来管理一个容器包括创建启动和停止等
## 版本号说明
本章示例涉及多个 Docker 镜像遵循以下版本号最佳实践
- **官方镜像** `ubuntu``nginx``mysql`使用具体大版本号 `ubuntu:24.04``mysql:8.0`而非 `latest`确保示例的可重复性
- **镜像标签约定**
- `latest` `v1.0.0` 带标签的自定义镜像示例中指定具体版本
- `24.04``8.0`官方镜像的稳定版本分支
- 生产环境建议指定精确版本号 `nginx:1.24.0``mysql:8.0.35`而非仅大版本号
* [启动容器](5.1_run.md)
* [守护态运行](5.2_daemon.md)
* [终止容器](5.3_stop.md)