【Docker学习】详细讲解docker ps

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.mzph.cn/pingmian/16968.shtml

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

相关文章

【MySQL精通之路】SQL优化(1)-查询优化(10)-外部联接简化

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化-CSDN博客 下一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(11)-多范围查询优化-CSDN博客 查询时FROM子句中的表达…

前后端项目部署和解决跨域

文章目录 一.前端项目部署1.1 上传前端文件1.2 项目部署1.3 解决跨域1.3.1 什么是跨域1.3.2 配置文件 二.后端项目部署2.1 上传后端文件2.2 项目部署2.3 解决跨域 一.前端项目部署 1.1 上传前端文件 站点创建好了&#xff0c;进入到站点的目录。 然后把它默认的文件删掉。 你…

2024.5.22 关于 SpringCloud —— Nacos 配置管理

目录 Nacos 配置统一管理 Nacos 配置热部署 Nacos 多环境配置共享 配置优先级 Nacos 配置统一管理 实例理解 我们想要利用 Nacos 在 user-service 的 application.yml 配置文件中新增配置项此处我们将新增配置日期格式为 yyyy-MM-dd HH:mm:ss下图为新增 Nacos 配置统一管理…

Redis篇 String

String概念和set,get扩充 一. String类型的基本介绍二. String中set,get方法扩充 一. String类型的基本介绍 redis中所有的key都是字符串类型的,但是value的类型差异很大. redis中的字符串,直接就是二进制方式存储的,可以存储整数,二进制数据 文本数据,Json,xml还有音频等. 二.…

工作中写单片机代码,与学校里有什么不同?

来聊聊我的经历&#xff0c;提供几个提升方向&#xff0c;亲测有效&#xff0c;希望能让你少走几年弯路。 10几年前&#xff0c;还没参加工作的时候&#xff0c;主要是玩玩开发板&#xff0c;也接触不到实际产品的代码&#xff0c;很好奇那些产品级的代码是怎样的。 第一份工作…

多线程理论及操作

【一】什么是线程 在传统操作系统中&#xff0c;每个进程有一个地址空间&#xff0c;而且默认就有一个控制线程 线程顾名思义&#xff0c;就是一条流水线工作的过程 一条流水线必须属于一个车间&#xff0c;一个车间的工作过程是一个进程 车间负责把资源整合到一起&#xff…

06_Tomcat

文章目录 Tomcat1.概念2.Tomcat安装3.Tomcat项目结构4.标准web项目结构5.Tomcat部署项目方式6.IDEA关联Tomcat6.1 构建tomcat和idea关联6.2 使用idea创建一个Javaweb工程6.3 使用idea将工程**构建**成一个app6.4 使用idea将构建好的app**部署**到tomcat中 Tomcat 1.概念 Tomc…

Nginx R31 doc-13-Limiting Access to Proxied HTTP Resources 访问限流

前言 大家好&#xff0c;我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的&#xff0c;可以参考我的另一个项目&#xff1a; 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

进程信号(2)

一、信号的处理 进程对应信号的处理的一般步骤就是&#xff1a;先去遍历pending位图&#xff0c;找到比特位为1的位置对应的信号&#xff0c;然后再去检测block位图对应位置的比特位是否为1。若不为1&#xff0c;就hander表的对应位置去调用信号的处理动作函数&#xff0c;若为…

探索增强现实(AR)的未来:超越智能手机与AR滤镜

随着技术的不断进步,增强现实(AR)正逐渐从智能手机和简单的AR滤镜中解放出来,迈向一个全新的时代。Ericsson ConsumerLab的最新研究报告《Augmented tomorrow: AR experiences beyond smartphones and AR filters》为我们提供了一个关于AR技术未来发展的深刻洞见。本文将探…

JS入门学习

JS JavaScript是一门解释型的脚本语言&#xff0c;其是弱类型的&#xff0c;对变量的数据类型不做严格的要求&#xff0c;变量的类型可以在运行过程中变化 JavaScript能改变HTML内容&#xff0c;属性&#xff0c;样式 大纲 使用方式变量运算符数组JS函数自定义对象事件补充 …

训练的过程中内存一直增加的问题(内存泄漏)、如何检查是否内存泄漏

更新于&#xff1a;2024年5月27日09:47:01 经过了漫长的排查&#xff0c;使用tracemalloc也并不能找到哪里内存泄漏&#xff0c;最后只能通过给出的错误去反思&#xff0c;然后再凭感觉去猜测错误所在位置&#xff1a; 所报的错误是&#xff1a; Too many open files&#x…

mysql中InnoDB的表空间--独立表空间

大家好&#xff0c;上篇文章我们在讲mysql数据目录的时候提到了表空间这个名词&#xff0c;它是一个抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为表名.ib…

DQL( 数据查询语言)

1. 基本查询 select * from 表名; select 字段,字段2,… from 表名; select * from 表名 where 筛选条件; select 字段,字段2,… from 表名 where 筛选条件; 2. 范围查询 select * from emp where sal 3000; select * from emp where sal ! 3000; select * from emp where s…

node.js学习P3-P10

P3 npm package.json&#xff08;package解读npm工具换镜像源&#xff09; 一个package.json文件可以的作用 作为一个描述文件&#xff0c;描述了你的项目依赖哪些包 &#xff0c;用来干什么的允许我们使用“语义版本规则”&#xff0c;指明你项目依赖的版本让你的构建更好的…

Java绩效考核系统源码 springboot员工绩效考核系统源码

Java绩效考核系统源码 springboot员工绩效考核系统源码-009 源码下载地址&#xff1a;https://download.csdn.net/download/xiaohua1992/89352195 项目介绍 本系统的功能分为管理员和员工两个角色 管理员的功能有&#xff1a; &#xff08;1&#xff09;个人中心管理功能&a…

代码随想录训练营Day49、50、52:Leetcode123、188、309、714、300、674、718

Leetcode123&#xff1a; 问题描述&#xff1a; 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前…

一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚&#xff0c;于是本文梳理一下&#xff0c;既方便自己记忆&#xff0c;也方便小白学习。 CUDA 首先&#xff0c;CUDA版本&#xff0c;一般指cuda-toolkit&#xff0c;即cuda开发工具包…

XShell免费版的安装配置

官网下载 https://www.xshell.com/zh/free-for-home-school/ 下载地址 通过邮箱验证 新建会话 通过ssh登录树莓派 填写主机IP 点击用户身份验证 成功连接

hadoop基础之MapReduce的学习

hadoop基础之MapReduce的学习 MapReduce的执行步骤&#xff1a; 1.Map package com.shujia.mr.worcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapp…