docker inspect 查看部分数据

article/2025/10/25 10:36:20

1. 问题描述

  1. 使用docker inspect命令可查看 docker 镜像/容器/数据卷 等的具体配置
  2. docker inspect命令格式
    docker inspect [参数] 容器名/容器ID/镜像名/镜像ID/数据卷名...
    
  3. 如果不加参数,则输出很多,难以精确查看真正关心的内容
    如果使用grep 表达式,则是暴力的将所有符合表达式的内容均显示出来,且破坏原有输出的层级结构
  4. 示例
    对容器my_rocky_ifconfig_01进行操作
    列出所有容器
    使用inspect命令,查看容器my_rocky_ifconfig_01的数据卷设置(即创建容器时的-v参数)
    不过滤直接输出
    将所有配置信息全部输出,看的眼花,要查看的参数在键值对Mounts
    查找需要的信息
    查找不便
    若使用grep指令,且不使用正则表达式时,情况如下
    grep 指令直接使用
    只显示一行
    问题:如何精确的查看Mounts下的配置而不输出其他内容?

2. 解决方案

  1. 使用-f参数筛选并格式化docker inspect命令的输出
    docker inspect -f="格式化表达式" 容器/镜像/存储卷... 
    
    1. -f参数筛选并格式化docker inspect的输出

      这里的格式化表达式是go模板 (go template):官方参考 参考2

      1. 查看Mounts中包含的配置信息

        # 对容器 my_rocky_ifconfig_01 进行操作
        docker inspect -f="{{.Mounts}}" my_rocky_ifconfig_01"
        

        输出结果:
        筛选输出结果
        输出足够精确但格式比较混乱。
        表达式中添加json以输出 json 格式方便后续处理

        # 对容器 my_rocky_ifconfig_01 进行操作
        docker inspect -f="{{json .Mounts}}" my_rocky_ifconfig_01"
        

        输出结果:
        筛选json格式输出

      2. 查看HostConfigBinds中的配置信息

        # 对容器 my_rocky_ifconfig_01 进行操作
        docker inspect -f="{{.HostConfig.Binds}}" my_rocky_ifconfig_01"
        

        输出结果:
        子项目筛选直接输出
        表达式中添加json以输出 json 格式方便后续处理

        # 对容器 my_rocky_ifconfig_01 进行操作
        docker inspect -f="{{json .HostConfig.Binds}}" my_rocky_ifconfig_01"
        

        输出结果: 子项目筛选后json格式输出

    2. 使用jq软件包将命令的输出美化并输出
      上边已经可筛选并输出json格式的内容,接下来要将上边输出的内容进行格式化。
      而软件包jq正好可对 json 格式文本进行格式化。

      1. 安装jq软件包
        # 演示系统是 centos 7,使用 yum 管理工具
        sudo yum install -y jq
        
      2. 使用jq对前边的输出进行格式化
        docker inspect语句XXX | jq
        1. 查看Mounts中包含的配置信息

          # 对容器 my_rocky_ifconfig_01 进行操作
          # docker inspect 语句输出格式为 json,以便 jq 进行格式化
          docker inspect -f="{{json .Mounts}}" my_rocky_ifconfig_01" | jq
          

          输出结果:与之前参看结果相同,且没有其他冗余项目的输出
          jq处理筛选并以json输出的结果1

        2. 查看HostConfigBinds中的配置信息

          # 对容器 my_rocky_ifconfig_01 进行操作
          # docker inspect 语句输出格式为 json,以便 jq 进行格式化
          docker inspect -f="{{json .HostConfig.Binds}}" my_rocky_ifconfig_01 | jq"
          

          输出结果:
          jq处理筛选并以json输出的结果2

  2. grep指令配合正则表达式
    docker inspect 容器/镜像/存储卷... | grep -e 正则表达式
    
    (略)
  3. docker inspect指令的完整输出结果保存到文件中,再用其他文本编辑器或指令来查看
    1. 保存输出完整输出结果
      # 将 完整输出结果 保存到 /home/inspect_res.txt 中
      # 使用 输出重定向 > 直接覆盖
      # 对容器 my_rocky_ifconfig_01 进行操作
      docker inspect my_rocky_ifconfig_01 > /home/inspect_res.txt
      
    2. 使用其他文本编辑软件/文本查看指令进行查看
      如使用cat配合more指令,或catless指令
      • 输入/,再输入要搜索的关键词,再按回车进行搜索
      • 按大写N搜索上一个,按小写n搜索下一个
      • less中,按q退出;在more中,浏览到文件末尾自动退出

http://chatgpt.dhexx.cn/article/DZVeUB22.shtml

相关文章

【网络教程】如何安装inspect.exe

文章目录 安装 安装 Inspect(Inspect.exe)是一个基于Windows的工具,允许您选择任何UI元素并查看元素的可访问性数据。您可以查看Microsoft UI自动化属性和控制模式,以及Microsoft活动辅助功能属性。Inspect还允许您测试UI自动化树…

inspect.exe安装使用

官网下载 https://developer.microsoft.com/zh-cn/windows/downloads/windows-sdk/ 官网教程 https://learn.microsoft.com/zh-cn/windows/win32/winauto/inspect-objects 要求 系统要求 Windows SDK 具有以下最低系统要求: 支持的操作系统 Windows 10版本 150…

python中inspect模块用法详解

获取函数签名对象。函数签名包含了一个函数的信息,包括函数名、它的参数类型、它所在的类和名称空间及其他信息)。 inspect模块主要提供了四种用处: 对是否是模块、框架、函数进行类型检查获取源码获取类或者函数的参数信息解析堆栈 1、对…

docker inspect

docker inspect 命令用于获取有关 Docker 容器、镜像、网络等的详细信息。它提供了关于指定对象的元数据和配置的完整视图,包括运行状态、网络设置、卷挂载、环境变量等。 以下是一些常见的字段和属性,可以根据需要选择其中一些或全部列出: …

UI自动化辅助工具Inspect

了解更多访问:windows应用程序GUI自动化控制 Inspect(Inspect.exe)是一个基于Windows的工具,允许您选择任何UI元素并查看元素的可访问性数据。您可以查看Microsoft UI自动化属性和控制模式,以及Microsoft活动辅助功能…

mysql数据库基础管理--数据库权限表

mysql数据库通过权限表实现对mysql数据库的访问,权限表存放在mysql数据库中,有脚本 mysql_install_db初始化。 存储账户权限表主要 USER,DB,HOST,TABLES_PRIV,COLUMNS_PRIV和PROCS_PRIV. mysql.USER 记录允许连接到数据库的用户信息,里面…

1、user权限表详解

MySQL 在安装时会自动创建一个名为 mysql 的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。 user 表是 MySQL 中最重要的一个权限表,用来记录允许连接到服务器的账号信息…

MySQL中用户权限、库权限、表权限的控制

MySQL中用户权限、库权限、表权限的控制 在开发中,除了可以在脚本代码中控制开发者对MySQL数据库数据表的权限,还可以在mysql层面进行控制。 对mysql的权限的控制可以大致分为三个层面:①连接上允不允许(是否能登录到mysql服务器…

数据库表设计1:用户权限管理

前言:权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同用户访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。 1、RBAC简介 RBAC&#xff0…

用户、角色、权限表的关系(mysql)

一,各个表格 1、用户表 CREATE TABLE t_user ( id varchar(40) NOT NULL, username varchar(20) NOT NULL, PRIMARY KEY (id) ) 2、角色表 CREATE TABLE t_role ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, description varchar(255) DEFAUL…

MySQL 权限管理表设计

阅读目录 MySQL 权限管理表设计创建三张主表三张表添加数据创建两张关系表两张表添加数据关联查询1 查询刘德华的角色2 查询苹果游客这个角色对应的用户是谁?3 查询总管理员的权限有哪些?4 查询苹果浏览权限对应的角色有哪些?5 查询刘德华的权限有哪些?6 查询杨幂的权限有哪…

权限管理数据表设计

权限管理数据表的设计 需要五张表,分别为(此处以MySQL为例) 用户表 t_user 角色表t_role权限表t_permission用户角色表t_user_rolet角色权限表t_role_permission 用户拥有什么角色,这个角色拥有什么权限 用户表(t_u…

用户权限设置5张表

--权限表(资源和权限合并) CREATE TABLE sys_permission ( id number(20) PRIMARY KEY NOT NULL,-- COMMENT 主键, name varchar2(128) NOT NULL , --COMMENT 资源名称, type varchar2(32) NOT NULL, -- COMMENT 资源类型:men…

MySQL权限表

一、权限系统概述 安装MySQL时自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。 用户登录以后,MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表和host表,除此之外,还…

权限管理用到的表

前言: 一个成熟的系统系统是离不开权限管理的,说权限管理就必须要说下权限管理经典的五张表了,无论是自定义的权限管理框架,还是流行的Shiro、SpringSecurity等权限管理框架都是离不开这五张表的,哪五张表呢&#xff0…

表设计之权限管理

分析 权限管理需要设计三张主表和两张关系表主表包括:用户表,角色表,权限表关系表:用户-角色关系表,角色权限关系表 建表准备数据 创建三张主表: 用户表, 角色表,权限表 create table user(id int primary key auto_increment, name varchar(20));create table role(id int p…

表设计----用户表,角色表,权限表

基于角色的访问控制:(java Web 编程口诀) 用户表角色表,用户角色中间表。 角色表权限表,角色权限中间表。 一个用户可有多个角色,一个角色又可有多个权限。这就是用户-角色-权限授权的模型。 为何不直接让…

用户·角色·权限·表

一.引言 因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设…

用户·角色·权限·表的设计

设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据&am…

MySQL - 权限表

目录 User表 1.范围列(或用户列) host : 表示连接类型 user : 表示用户名,同一用户通过不同方式链接的权限是不一样的。 password : 密码 2.权限列 Grant_priv Shutdown_priv Super_priv Execut…