【Docker学习】详细讲解docker ps

news2024/9/19 12:29:45

docker ps是我们操作容器次数最多的命令之一,但我们往往使用docker ps或是docker ps -a,对于该命令的其它选项,我们关注比较少。那么这一讲,我给大家详细讲讲该命令的全部方法。

命令:

docker container ls

描述:

列出容器。

用法:

docker container ls [OPTIONS]

别名:

docker ps、docker container ps、docker container list(docker的一些命令具有别名,这四种别名是等价的,都可以使用,建议使用最简短的docker ps)

选项:

选项描述
-a, –all显示所有容器(默认只显示正在运行的容器)
-f, –filter根据提供的条件过滤输出
–format使用自定义模板格式化输出: 
‘table’:以表格格式打印输出,包含列标题(默认) 
‘table TEMPLATE’:使用给定的 Go 模板以表格格式打印输出 
‘json’:以 JSON 格式打印 
‘TEMPLATE’:使用给定的 Go 模板打印输出。 
-n, –last显示最后创建的 n 个容器(包括所有状态),默认值-1
-l, –latest显示最新创建的容器(包括所有状态)
–no-trunc不要截断输出
-q, –quiet只显示容器ID
-s, –size显示总文件大小

示例1:默认命令docker ps

docker ps

输入命令之后,结果如下图所示:

可以看出,所有状态(STATUS)为Up的容器信息全部显示出来。Up状态代表运行中。

示例2:-a、–all选项

docker ps --all

命令加上–all选项,显示所有容器,包含所有状态的容器。

上图的结果显示,Exited状态的容器hardcore_benz也显示出来了。

示例3:-f, –filter选项

–filter(或 -f)标志的格式是键=值对。如果有多个过滤器,则传递多个标志(例如 –filter “foo=bar” –filter “bif=baz”)。
当前支持的过滤器有:

过滤器描述
id容器ID
name容器名称
label一个任意字符串,代表一个键或者一个键值对。表示为<key> 或 <key>=<value>。
exited一个整数,代表容器的退出码。仅在与 –all 选项一起使用时才有意义。
status其中一个状态为 created(已创建)、restarting(正在重启)、running(正在运行)、removing(正在移除)、paused(已暂停)、exited(已退出)或 dead(已死亡)。
ancestor筛选出共享给定镜像作为祖先的容器。表示为<image-name>[:<tag>]、<image id>或<image@digest>
before 或 since筛选在给定容器 ID 或名称之前或之后创建的容器
volume筛选挂载了给定卷或绑定挂载的正在运行的容器。
network筛选连接到给定网络的正在运行的容器。
publish 或 expose筛选发布或暴露给定端口的容器。表示为<port>[/<proto>]或<startport-endport>/[<proto>]
health根据容器的健康检查状态筛选容器。可能的状态有 starting(启动中)、healthy(健康)、unhealthy(不健康)或 none(无)。
isolation仅适用于 Windows 守护进程。值为 default、process 或 hyperv 之一。
is-task筛选作为服务“任务”的容器。布尔选项(true 或 false)。

这个选项因为需要很多附加条件,我只给出能直接看出效果的示例。

docker ps -f status=exited

这个选项只过滤出状态为exited(退出)的容器。

示例4:–format选项

该选项以适合自己的格式输出,其中按照Go模板的方式会涉及到以下占位符:

占位符描述
.ID容器ID
.Image镜像ID
.Command引用的命令
.CreatedAt容器创建的时间
.RunningFor自容器启动以来的经过时间。
.Ports暴露的端口。
.State容器状态(例如:”created”(已创建)、”running”(运行中)、”exited”(已退出))。
.Status容器状态,包括持续时间与健康状态的详细信息。
.Size容器磁盘大小
.Names容器名称
.Labels分配给容器的所有标签。
.Label此容器特定标签的值。例如 ‘{{.Label “com.docker.swarm.cpu”}}’
.Mounts在此容器中挂载的卷的名称。
.Networks连接到这个容器的网络的名称。

这个选项可以随便组合占位符,我每种类型只列举一个,剩下的由大家自己去玩。

docker ps  --format "table {{.Names}}\t{{.Size}}\t{{.Status}}"

这个以表格形式打印。

docker ps --format json

这个是json格式,看起来非常乱。

docker ps --format "{{.ID}}: {{.Command}} {{.RunningFor}}"

这是使用Go模板的方式打印。

示例5:-n, –last选项

docker ps -n 3

该选项后面必须加一个数字,否则会报错。该选项显示-n后面数字个容器,无论容器处于什么状态。

以下是我的阿里云上最后创建的3个容器。其中mymongo是退出状态,其它两个是运行状态。

示例6:-l, –latest选项

docker ps -l

该选项显示最新创建的容器,无论该容器处于什么状态。下面显示的是我刚刚停止的容器mymongo,使用-l选项,即便是Exited状态,也会显示。

示例7:–no-trunc选项

docker ps --no-trunc

执行该命令后,CONTAINER ID一列符号变长了。

示例8:-q, –quiet选项

docker ps -q

该选项只用来显示容器ID,想不到这个选项的实际作用,难道只是怕污了眼睛而过滤大量信息?

如图所示,只显示容器ID,并不能知道这一堆符号是什么容器。

该选项可以和–no-trunc连用,执行结果如下所示:

示例9:-s, –size选项

docker ps -s

加入该选项后,容器列表的最右侧增加SIZE列,显示两种不同的磁盘容量大小。

其中,前面的数字表示用于每个容器的可写层的磁盘数据量。 后面括号中“virtual” 表示的是容器使用的只读镜像数据以及可写层所用的磁盘空间总量。多个容器可能会共享一些或全部的只读镜像数据。从同一镜像启动的两个容器共享 100% 的只读数据,而具有共同层的不同镜像的两个容器则共享这些共同层。因此,不能简单地将虚拟大小相加。这可能会大大高估总磁盘使用量。

所有正在运行的容器在磁盘上使用的总磁盘空间是每个容器的 size 和 virtual size 值的组合。如果多个容器从完全相同的镜像启动,这些容器的总磁盘大小将是容器的总和(size of containers)加上一个镜像大小(virtual size – size)。

以上显示的磁盘空间占用情况,不包括以下五种方式:

  • 日志驱动程序存储的日志文件所占用的磁盘空间。如果容器生成大量日志数据并且没有配置日志轮换,这可能会相当可观。
  • 容器使用的卷和绑定挂载。
  • 用于容器的配置文件的磁盘空间,这些文件通常很小。
  • 写入磁盘的内存(如果启用了交换)。
  • 检查点,如果你使用实验性的检查点/恢复功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1703419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python数据分析——apply 1

参考资料&#xff1a;活用pandas库 apply是指把函数同时作用于DataFrame的每一行或每一列。类似于编写一些跨每行或每列的for循环&#xff0c;并同时调用apply函数。 1、函数 函数是对python代码进行分组和复用的一种方法。如果某段代码会被多次使用&#xff0c;并且使用时是需…

Flink 数据源

原理 在 Flink 中&#xff0c;数据源&#xff08;Source&#xff09;是其中一个核心组件&#xff0c;负责从各种来源读取数据供 Flink 程序处理。 Flink 的数据源类型丰富&#xff0c;涵盖了从简单测试到生产环境使用的各种场景。Kafka、Socket、文件和集合是 Flink 中最常见…

[转载]同一台电脑同时使用GitHub和GitLab

原文地址&#xff1a;https://developer.aliyun.com/article/893801 简介&#xff1a; 工作中我们有时可能会在同一台电脑上使用多个git账号&#xff0c;例如&#xff1a;公司的gitLab账号&#xff0c;个人的gitHub账号。怎样才能在使用gitlab与github时&#xff0c;切换成对应…

利用边缘计算网关的工业设备数据采集方案探讨-天拓四方

随着工业4.0时代的到来&#xff0c;工业设备数据采集成为了实现智能制造、提升生产效率的关键环节。传统的数据采集方案往往依赖于中心化的数据处理方式&#xff0c;但这种方式在面对海量数据、实时性要求高的工业场景时&#xff0c;往往显得力不从心。因此&#xff0c;利用边缘…

访问构造方法(反射)

文章目录 前言一、反射是什么&#xff1f;二、访问构造方法 1.Constructor对象的获取方法2.Constructor方法的使用总结 前言 Java的反射机制可以实现访问、检测和修改Java对象本身信息的功能&#xff0c;在java.lang.reflect包下提供此功能。可以使程序员更加深入地控制程序的运…

初识C语言——第二十九天

数组 本章重点 1.一维数组的创建和初始化 数组的创建 注意事项&#xff1a; 1.一维由低数组在内存中是连续存放的&#xff01; 2.随着数组下标的增长&#xff0c;地址是由低到高变化的 2.二维数组的创建和初始化 注意事项&#xff1a; 1.二维数组在内存中也是连续存放的&am…

内网横向移动小补充 --->PTK

大家别急&#xff0c;我的基于资源的约束性委派攻击还在写&#xff0c;这个东西一时半会讲不清楚&#xff0c;所以我在这里先来补充一点横向移动以前没说好的东西&#xff01;&#xff01;&#xff01; 在更啦&#xff0c;别催啦~~~~ 还记得我之前在内网渗透里面讲过这个PTK&a…

2024爆款神器!会声会影2024旗舰版,让你的视频制作技能暴涨,不学真的亏大了!

在数字内容创作的时代&#xff0c;视频编辑已经成为连接创意与现实的重要桥梁。无论是个人Vlog制作、在线教育课程、企业宣传还是专业影视制作&#xff0c;高效而强大的视频编辑软件成为了必不可少的工具。会声会影2024旗舰版&#xff0c;作为一款集先进技术与用户友好界面设计…

数据集007:垃圾分类数据集(含数据集下载链接)

数据集简介 本数据拥有 训练集&#xff1a;43685张&#xff1b; 验证集&#xff1a;5363张&#xff1b; 测试集&#xff1a;5363张&#xff1b; 总类别数&#xff1a;158类。 部分代码&#xff1a; 定义数据集 class MyDataset(Dataset):def __init__(self, modetrain, …

【MATLAB】去除趋势项(解决频谱图大部分为零的问题)

1.概 述 在许多实际信号分析处理中信号经FFT变换后得到的频谱谱线值几乎都为0&#xff0c;介绍这是如何形成的&#xff0c;又该如何去解决。 2.案例分析 读入一组实验数据文件(文件名为qldata.mat)&#xff0c;作出该组数据的频谱图。程序清单如下: clear; clc; close all;…

(四)手把手教你内网穿透,实现外网主机访问内网服务器

背景&#xff1a;书接上回&#xff0c; 服务器的使用-CSDN博客 课题组成员都有自己的账号&#xff0c;且能通过内网访问服务器&#xff0c;进行远程连接了。我们知道内网中的主机可以访问公网的主机&#xff0c;反之不可以访问。那么如果课题组成员在家不在内网区域内&#x…

重生之 SpringBoot3 入门保姆级学习(07、整合 Redis 案例)

重生之 SpringBoot3 入门保姆级学习&#xff08;07、整合 Redis 案例&#xff09; 导入 Maven 依赖并刷新 Maven <dependencies><!--springboot3 Web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

nginx流量监控:goAccess安装与使用

关于goAccess GoAccess 是一款实时、快速的日志分析工具&#xff0c;专门设计用于分析Web服务器日志&#xff0c;特别是Nginx日志。 安装 &#xff08;1&#xff09;准备相关依赖 # Missing development libraries for ncursesw # centOS yum install -y ncurses-devel # U…

动态规划-似包非包问题

组合总和 Ⅳ&#xff08;377&#xff09; 题目描述&#xff1a; 状态表示&#xff1a; 我们看到这题发现有一个限制条件就是目标整数target并且此时数组中的数字是可以重复选择的&#xff0c;这时候不难联想到前面学习的完全背包问题&#xff0c;这题好像符合完全背包问题的…

【开源】加油站管理系统 JAVA+Vue.js+SpringBoot+MySQL

目录 一、项目介绍 论坛模块 加油站模块 汽油模块 二、项目截图 三、核心代码 一、项目介绍 Vue.jsSpringBoot前后端分离新手入门项目《加油站管理系统》&#xff0c;包括论坛模块、加油站模块、汽油模块、加油模块和部门角色菜单模块&#xff0c;项目编号T003。 【开源…

nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

【读书】读书笔记——理科生的视角:底层逻辑+数学之美

1&#xff0c;底层逻辑1&#xff08;看清这个世界的底牌&#xff09; 刘润 著 0&#xff09;什么是底层逻辑&#xff1f; 底层逻辑是&#xff1a;事物之间共同点、变化背后不变的东西事&#xff1b;看清事物的本质&#xff0c;才能在复杂变化中从根本上解决问题。 1&#x…

基于51单片机的智能灯光控制系统

一.硬件方案 智能灯光控制系统由单片机最小系统、人体感应模块、关照强度模块、灯光控制模块、电源模块和灯泡组成。本文以STC89C52单片机为核心&#xff0c;通过利用光照度和红外人体感应相结合主动与被动的探测方法&#xff0c;现了室内无人或者关照充足时灯光自动光灯&…

PyCharm面板ctrl+鼠标滚轮放大缩小代码

1.【File】➡【Settings】 2.点击【Keymap】&#xff0c;在右边搜索框中搜incre&#xff0c;双击出现的【Increase Font Size】 3.在弹出的提示框中选择【Add Mouse Shortcut】 4.弹出下面的提示框后&#xff0c;键盘按住【ctrl】&#xff0c;并且上滑鼠标滚轮。然后点击【O…

第十七讲:结构体

第十七讲&#xff1a;结构体 1.初始结构体1.1结构体声明1.2结构体变量的创建和初始化1.2.1结构体变量的创建1.2.2结构体变量的初始化1.2.2.1普通初始化1.2.2.2结构体数组1.2.2.3结构体指针 1.3typedef定义结构体1.4结构体的自引用1.5结构体的特殊声明 2.结构体内存对齐2.1对齐规…