在本章节中,我们将学习如何有效地监控和管理 Docker 容器,包括使用命令行工具和图形化界面(Portainer)进行容器管理。
提示:本节所需的容器可以利用上一节 Docker Compose 启动的容器来演示。
以下是一些最常用的容器管理命令:
# 列出所有容器(包括停止的容器)
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>
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 容器内进程数
# 查看容器日志
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>
# 进入运行中的容器
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
Portainer 是一个轻量级的 Docker 管理工具,提供了直观的 Web 界面来管理 Docker 环境。
# 创建 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 的端口映射来实现外网访问,按照如下步骤配置:

点击浏览器图标,就可以访问 Portainer 了。
仪表盘概览
容器管理
镜像管理
网络管理
数据卷管理
# 停止并删除 Portainer 容器
docker rm -f portainer
# 删除数据卷(可选,删除后 Portainer 配置将丢失)
docker volume rm portainer_data