问题描述
我们怎么知道有哪些容器在运行,而且它们的信息又是什么呢?
功能介绍
mydocker ps 命令主要是查询一下容器的信息数据,如 PID、容器创建时间、容器运行命令等,然后显示出来。
实现
第一步,准备数据
所有关于容器的信息,比如 PID 、容器创建时间、容器运行命令等,都没有记录,这导致容器运行完后就再也不知道它的信息了,因此需要把这部分信息保留下来。
我们先定义了一个容器的一些基本信息, 比如 PID 和创建时间等,然后默认把容器的信息以 json 的形式存储在宿主机的“/var/run/mydocker/容器名/config.json ”文件里面。
具体步骤:
- 生成容器信息的结构体实例
- 将容器信息的对象 json 序列化成字符串
- 根据容器名拼凑出存储容器信息的路径(如果不存在就创建)
- 将 json 化之后的数据写入到文件中
第二步,实现 mydocker ps
准备好数据之后,查看数据的具体实现就很简单了。具体步骤如下:
- 找到存储容器信息的路径 /var/run/mydocker
- 读取该文件夹下的所有文件
- 将 json 文件信息反序列化成容器信息对象
- 最后在控制台打印出容器信息