logo
93
0
WeChat Login
update: 完善 Docker 容器管理与监控文档

Docker 容器监控与管理

在本章节中,我们将学习如何有效地监控和管理 Docker 容器,包括使用命令行工具和图形化界面(Portainer)进行容器管理。

提示:本节所需的容器可以利用上一节 Docker Compose 启动的容器来演示。

1. 容器管理基础

1.1 容器生命周期管理

以下是一些最常用的容器管理命令:

# 列出所有容器(包括停止的容器) docker ps -a # 仅列出运行中的容器 docker ps # 启动容器 docker start <container_id> # 停止容器 docker stop <container_id> # 重启容器 docker restart <container_id> # 删除容器(需要先停止) docker rm <container_id> # 强制删除运行中的容器 docker rm -f <container_id>

1.2 容器资源监控

Docker 提供了多种方式来监控容器的资源使用情况:

# 实时查看容器资源使用状态 docker stats # 查看容器资源使用情况(仅显示名称、CPU 和内存) docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" # 查看容器详细信息 docker inspect <container_id> # 查看容器内进程 docker top <container_id> # 查看容器端口映射 docker port <container_id>

docker stats 输出字段说明

字段说明
NAME容器名称
CPU %CPU 使用率
MEM USAGE / LIMIT内存使用量 / 内存限制
NET I/O网络输入 / 输出
BLOCK I/O磁盘读 / 写
PIDS容器内进程数

2. 容器日志与调试

2.1 日志查看

# 查看容器日志 docker logs <container_id> # 实时查看最新日志 docker logs -f <container_id> # 查看最近 100 行日志 docker logs --tail 100 <container_id> # 显示时间戳 docker logs -t <container_id> # 组合使用:实时查看最近 50 行带时间戳的日志 docker logs -f --tail 50 -t <container_id>

2.2 容器调试

# 进入运行中的容器 docker exec -it <container_id> /bin/sh # 查看容器内文件系统变更 docker diff <container_id> # 将容器内文件复制到宿主机 docker cp <container_id>:/path/to/file ./local_path # 将宿主机文件复制到容器内 docker cp ./local_file <container_id>:/path/to/dest

3. 实践练习:使用 Portainer 对 Docker 进行可视化管理

Portainer 是一个轻量级的 Docker 管理工具,提供了直观的 Web 界面来管理 Docker 环境。

3.1 安装 Portainer

# 创建 Portainer 数据卷 docker volume create portainer_data # 运行 Portainer 容器 docker run -d -p 9000:9000 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:2.29.2

关于 -v /var/run/docker.sock:/var/run/docker.sock

/var/run/docker.sock 是 Docker 客户端与 Docker 守护进程(dockerd)之间通信的 Unix 套接字文件。将它挂载到 Portainer 容器中,相当于赋予了 Portainer 与宿主机 Docker 引擎同等的控制权,使其能够管理宿主机上的所有 Docker 资源(容器、镜像、网络等)。

安装完成后,在 CNB 上可以通过添加一个 9000 的端口映射来实现外网访问,按照如下步骤配置:

port_forward

点击浏览器图标,就可以访问 Portainer 了。

3.2 Portainer 主要功能

  1. 仪表盘概览

    • 查看环境整体状态
    • 监控资源使用情况
    • 查看事件日志
  2. 容器管理

    • 创建、启动、停止、删除容器
    • 查看容器日志和统计信息
    • 进入容器终端
    • 修改容器配置
  3. 镜像管理

    • 拉取和删除镜像
    • 构建新镜像
    • 推送镜像到仓库
  4. 网络管理

    • 创建和管理 Docker 网络
    • 配置容器网络连接
  5. 数据卷管理

    • 创建和删除数据卷
    • 管理数据卷权限

3.3 清理

# 停止并删除 Portainer 容器 docker rm -f portainer # 删除数据卷(可选,删除后 Portainer 配置将丢失) docker volume rm portainer_data