如何查看 Docker 容器清单

DockerBeginner
立即练习

简介

Docker 通过提供轻量级、可移植的容器化解决方案,彻底改变了软件部署方式。了解如何查看和管理你的 Docker 容器清单,对开发者和系统管理员而言至关重要。本教程将指导你通过各种方法,在不同场景下有效地列出、检查和跟踪 Docker 容器。

Docker 容器概述

什么是 Docker 容器?

Docker 容器是一个轻量级、独立的可执行软件包,它包含运行一段软件所需的一切,包括代码、运行时环境、系统工具、库和设置。容器为不同计算平台上的应用程序提供了一致且可重现的环境。

Docker 容器的关键特性

隔离性

容器将应用程序与主机系统及其他容器隔离开来,确保每个应用程序都在自己的环境中运行,互不干扰。

graph TD
    A[主机操作系统] --> B[容器 1]
    A --> C[容器 2]
    A --> D[容器 3]

可移植性

容器可以在从开发到生产的不同环境中持续运行,减少“在我的机器上能运行”这类问题。

高效性

与传统虚拟机相比,容器的资源利用效率更高,因为它们共享主机系统的内核,开销更小。

容器与虚拟机对比

特性 Docker 容器 虚拟机
资源使用 轻量级 重量级
启动时间 秒级 分钟级
隔离级别 进程级 完整系统级
性能

常见用例

  1. 微服务架构
  2. 持续集成/持续部署(CI/CD)
  3. 云原生应用开发
  4. 开发与测试环境

基本的 Docker 容器工作流程

graph LR
    A[Docker 镜像] --> B[创建容器]
    B --> C[启动容器]
    C --> D[运行应用程序]
    D --> E[停止容器]
    E --> F[移除容器]

通过 LabEx 入门

为了通过实践学习 Docker 容器并获得实际经验,LabEx 提供交互式环境和全面的教程,帮助开发者掌握容器技术。

查看容器清单

基本的 Docker 容器列出命令

列出正在运行的容器

要查看当前正在运行的容器,请使用 docker ps 命令:

docker ps

列出所有容器(包括已停止的)

要查看所有容器,包括已停止的容器:

docker ps -a

高级容器列出技巧

过滤容器

Docker 提供了强大的过滤选项来查看特定的容器:

## 按状态过滤
docker ps -f "status=running"

## 按镜像过滤
docker ps -f "ancestor=ubuntu:latest"

自定义输出格式

使用特定列来自定义容器列表:

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"

容器清单可视化

graph TD
    A[Docker 命令] --> B{列出类型}
    B --> |正在运行的容器| C[docker ps]
    B --> |所有容器| D[docker ps -a]
    B --> |过滤后的容器| E[docker ps -f]

详细的容器信息

检查特定容器

获取有关特定容器的详细信息:

docker inspect [容器 ID]

容器清单属性

属性 描述 示例
容器 ID 唯一的容器标识符 a1b2c3d4e5f6
镜像 使用的基础镜像 ubuntu:latest
命令 正在运行的命令 /bin/bash
创建时间 容器创建时间 2 小时前
状态 当前容器状态 已运行 45 分钟
端口 暴露的端口 80/tcp
名称 容器名称 friendly_newton

LabEx Pro 提示

在处理 Docker 容器清单时,LabEx 建议在受控环境中练习这些命令,以建立肌肉记忆并加深理解。

实际场景

  1. 监控容器生命周期
  2. 排查容器部署故障
  3. 管理多个容器环境
  4. 审计容器资源

容器管理技术

容器生命周期管理

启动容器

使用 docker start 命令启动容器:

docker start [容器 ID]

停止容器

优雅地停止正在运行的容器:

docker stop [容器 ID]

重启容器

使用单个命令重启容器:

docker restart [容器 ID]

容器生命周期工作流程

graph TD
    A[创建容器] --> B[启动容器]
    B --> C{容器状态}
    C --> |运行中| D[执行命令]
    C --> |已停止| E[重启/移除]
    D --> F[停止容器]
    F --> G[移除容器]

高级容器管理

交互式运行容器

在容器内启动交互式 shell:

docker run -it ubuntu:latest /bin/bash

在运行的容器中执行命令

在活动容器中运行命令:

docker exec [容器 ID] 命令

容器资源管理

限制容器资源

控制 CPU 和内存使用:

docker run --cpus=2 --memory=1g ubuntu:latest

资源使用监控

跟踪容器性能:

docker stats [容器 ID]

容器管理技术

技术 命令 描述
创建 docker create 准备容器但不启动
运行 docker run 创建并启动容器
停止 docker stop 优雅地停止容器
移除 docker rm 删除容器
暂停 docker pause 临时冻结容器

容器网络

端口映射

将容器端口暴露给主机:

docker run -p 8080:80 nginx:latest

创建自定义网络

创建隔离的容器网络:

docker network create mynetwork
docker run --network=mynetwork nginx:latest

容器备份与迁移

创建容器快照

从运行的容器生成镜像:

docker commit [容器 ID] myimage:backup

导出容器

保存容器状态以进行迁移:

docker export [容器 ID] > container.tar

LabEx 建议

对于全面的 Docker 容器管理,LabEx 建议在受控的模拟环境中练习这些技术,以培养实践技能。

最佳实践

  1. 始终使用资源限制
  2. 实施适当的容器监控
  3. 定期清理未使用的容器
  4. 对容器配置使用版本控制
  5. 实施安全扫描

总结

掌握 Docker 容器清单管理对于维护一个强大且高效的容器化环境至关重要。通过利用 Docker CLI 命令和高级过滤技术,你可以全面了解正在运行和已停止的容器,从而实现更好的资源管理和系统监控。