Docker的Container简介_容器container除了docker(1)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

d00f46e347d2 mydocler “/hello” 2 days ago Exited (13) 2 days ago epic_poitras
b600431e3e62 hello-world “/hello” 2 days ago Exited (0) 2 days ago suspicious_ritchie
4a9554ac3cc5 hello-world “/hello” 2 days ago Exited (0) 2 days ago cranky_elbakyan
31e391e789db alpine “sh” 3 months ago Dead hungry_jang
[root@localhost ~]#




---


* 运行docker容器


	1. 运行docker容器可以使用 `docekr run <IMAGE STRING>`,但用这个命令运行的容器会在运行完后,容器就自动退出了,不能跟用户有交互的效果。
	2. 想要有交互效果可以使用`docker run -it <IMAGE STRING>`命令。
	
	 
	```
	[root@localhost ~]# docker run -it alpine
	/ # 
	/ # 
	/ # 
	```
	 我们可以看到,这样就相当于进入了一个操作系统里面。另起一个终端,输入`docker container ls`,可以看到当前正在运行的容器:
	
	 
	```
	[root@localhost ~]# docker container ls 
	CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
	5f0e3c110aa2        alpine              "/bin/sh"           2 minutes ago       Up 2 minutes                            elegant_bohr
	
	```
	3. 后台运行container容器,使用 `docker run -d <IMAGE STRING>`
	4. 退出当前正在运行的容器,键入`exit`命令。




---


* `docker ps -a` 命令等价于`docker container ls -a`
* `docker image ls`可以列举出来当前所有的Image,它的简写方式为`docker images`



[root@localhost ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mydocler latest 92e255dbbd0e 2 days ago 865kB
hello-world latest e38bc07ac18e 2 months ago 1.85kB
nginx alpine 1058e9c89897 4 months ago 17.9MB
alpine latest a741b13578d9 5 months ago 4.14MB
[root@localhost ~]#


* docker 删除某个Container的命令:`docker rm <CONTAINER ID>`
* 删除当前的某个Image的命令:`docker image rm <IMAGE ID>`,简写方式为:`docker rmi <IMAGE ID>`
* 列举出所有container的id,`docker container ls -aq`:



[root@localhost ~]# docker container ls -aq
5f0e3c110aa2
df6fdbe3845f
63ae7603d5b8
7341247b420e
2daca6673376
d00f46e347d2
b600431e3e62
4a9554ac3cc5


上面这条命令的效果跟命令`docker container ls -a | awk {'print$1'}`是一样的:



[root@localhost ~]# docker container ls -a | awk {‘print$1’}
CONTAINER
5f0e3c110aa2
df6fdbe3845f
63ae7603d5b8
7341247b420e
2daca6673376
d00f46e347d2
b600431e3e62
4a9554ac3cc5
31e391e789db


* 删除掉所有的container => `docker rm $(docker container ls -aq)`:



[root@localhost ~]# docker rm $(docker container ls -aq)
5f0e3c110aa2
df6fdbe3845f
63ae7603d5b8
7341247b420e
2daca6673376
d00f46e347d2
b600431e3e62
4a9554ac3cc5
31e391e789db
[root@localhost ~]# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

可以加我V获取:vip1024c (备注嵌入式)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

<think>好的,我需要解释用户提到的categraf中的两个指标:docker_container_status_finished_at和docker_container_status_started_at。首先,我得回忆一下categraf的基本情况,它应该是一个监控代理,用于收集各种系统和服务的数据。用户的问题是关于Docker容器状态的时间戳指标,我需要明确这两个指标的具体含义和用途。 首先,docker_container_status_started_at应该是指容器启动的时间。在Docker中,每个容器启动时都会记录一个时间戳,这个指标可能用于监控容器的启动时间和运行时长。例如,当容器重启或重新部署时,这个时间戳会更新,可以帮助用户了解容器的运行状态和生命周期。 接下来,docker_container_status_finished_at可能是指容器停止的时间。当容器正常退出或被终止时,Docker会记录这个时间。这个指标对于分析容器的停止原因、运行时长以及是否存在异常终止的情况很有帮助。例如,如果容器频繁停止,结合这两个时间戳可以计算运行时间,进而判断是否有问题。 我需要确认这两个指标的数据来源。通常,categraf会通过Docker API或docker stats获取容器信息。Docker API中的容器状态信息应该包含这些时间戳,比如在容器的State部分,有StartedAt和FinishedAt字段。这些时间戳是UTC时间,格式可能是RFC3339Nano。 然后,考虑用户的使用场景。用户可能需要这些指标来监控容器的运行状态,比如检测容器是否意外重启,计算容器的运行时间,或者进行故障排。例如,如果某个容器的finished_at时间突然出现,而用户没有主动停止它,可能意味着容器崩溃或被系统终止。 还需要注意这些指标的单位和格式。时间戳通常是Unix时间戳或者ISO 8601格式的字符串,用户在使用时需要确保监控系统能够正确解析这些时间格式,可能需要转换为可读的时间或进行时间差计算。 此外,可能需要解释这两个指标在监控中的实际应用。比如,结合告警规则,当finished_at时间在最近一段时间内出现,而容器没有重新启动,可能触发告警;或者计算容器的uptime,通过当前时间减去started_at时间。 最后,确保回答结构清晰,分点说明每个指标的含义、用途和使用场景,帮助用户全面理解这两个指标的作用,并能够应用到实际的监控和故障排中去。</think>在Categraf中,`docker_container_status_finished_at`和`docker_container_status_started_at`是与Docker容器生命周期相关的监控指标,具体含义如下: --- ### 1. **`docker_container_status_started_at`** - **含义** 记录Docker容器最后一次**启动的时间戳**(UTC时间),格式通常为RFC3339或Unix时间戳。 - **用途** - 监控容器运行时长(例如:当前时间 - `started_at` = 运行时间) - 判断容器是否发生过重启(例如:`started_at`突然更新但未伴随业务更新) - 结合日志定位问题(例如:容器崩溃后自动重启的时间点) --- ### 2. **`docker_container_status_finished_at`** - **含义** 记录Docker容器最后一次**停止/退出的时间戳**(UTC时间),仅当容器处于`exited`状态时有效。 - **用途** - 监控容器异常终止(例如:`finished_at`突然出现且未预期) - 计算容器存活周期(例如:`finished_at - started_at` = 存活时长) - 结合退出码(`exit_code`指标)诊断容器终止原因(如OOM、崩溃等) --- ### 3. **典型使用场景** - **故障排** 若容器频繁重启,可通过`started_at`和`finished_at`的时间间隔判断是否因健康检失败或资源不足导致。 - **运行状态统计** 结合Prometheus等工具,统计容器的平均运行时长或稳定性。 - **告警规则** 例如: ```plaintext # 容器在5分钟内重启超过3次 count_over_time(docker_container_status_started_at[5m]) > 3 ``` --- ### 4. **数据来源** Categraf通过Docker API(如`/containers/json`接口)获取容器状态信息,底层依赖Docker Daemon记录的容器元数据。 --- **总结**:这两个指标是分析容器生命周期的重要依据,重点关注时间戳的连续性和异常波动,可有效辅助运维监控和故障定位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值